新锐房地产销售管理系统(部分流程)技术解析(八) 销售管理_预定管理
1.预定管理主界面
从界面上可以看到我们这里用到的控件有
控件名称 |
说明 |
标注(Label) |
控件可以在工具箱直接拖动至窗体,拖至窗体后右击属性可以修改控件的样式和各种属性,还可以编辑事件。 |
选项卡(TabControl) |
|
树状图(TreeView) |
|
文本(TextBox) |
|
按钮(Button) |
|
菜单(ToolStripMenuItem) |
|
工具栏(ToolStrip) |
|
图片列表(ImageList) |
|
表格(DataGridView) |
功能实现:
第一步:数据库
1、表与关系
表1: 房间资源表(dbo.SYS_RoomResource)
Primary Key(主键): RoomResourcesID
非主键ID值均是外键
列名 |
数据类型 |
默认值 |
Nulls? |
说明 |
RoomResourcesID |
int - Identity |
No |
房间资源ID |
|
FloorID |
int |
Yes |
楼栋信息表,楼栋ID |
|
TheCodeModelID |
int |
Yes |
属性明细表,代码模式ID |
|
Number |
nchar (10) |
Yes |
编号 |
|
UnitNumberID |
int |
Yes |
单元表,单元ID |
|
FloorStotey |
nchar (10) |
Yes |
楼层 |
|
RoomCategoryID |
int |
Yes |
属性明细表,房间类别ID |
|
TowardID |
int |
Yes |
属性明细表,朝向ID |
|
DoorModelID |
int |
Yes |
属性明细表,户型ID |
|
RoomTypeID |
int |
Yes |
属性明细表,房间类型ID |
|
RoomLandScapeID |
int |
Yes |
属性明细表,房间景观ID |
|
RoomSpecialID |
int |
Yes |
属性明细表,房间特殊ID |
|
ConstructionArea |
decimal (18, 2) |
Yes |
建筑面积 |
|
PricateArea |
decimal (18, 2) |
Yes |
私有面积 |
|
PublicArea |
decimal (18, 2) |
Yes |
公摊面积 |
|
Usage |
decimal (18, 2) |
Yes |
使用率 |
|
TheUnitPrice |
decimal (18, 2) |
Yes |
标价单价 |
|
BidPrice |
decimal (18, 2) |
Yes |
标价总价 |
|
NumberOfPrice |
nchar (10) |
Yes |
价格次数 |
|
SalesStatusID |
int |
((102)) |
Yes |
属性明细表,销售状态ID |
BriefNote |
nchar (30) |
Yes |
简要备注 |
|
SchematicDiagram |
image |
Yes |
示意图 |
|
Chart |
image |
Yes |
效果图 |
表2: 楼栋信息表(dbo.SYS_FloorInformation)
Primary Key(主键): FloorID
非主键ID值均是外键
(这里因为在这个表里边没有设置有默认值,所以没有默认值的那一列)
列名 |
数据类型 |
Nulls? |
说明 |
FloorID |
int - Identity |
No |
楼栋ID |
ProjectID |
int |
Yes |
项目信息表,项目ID |
FloorStructureID |
int |
Yes |
属性明细表,楼栋结构ID |
OpenBatchID |
int |
Yes |
属性明细表,开盘批次ID |
LaunchSituationID |
int |
Yes |
属性明细表,推出情况ID |
OpeningSituationID |
int |
Yes |
属性明细表,开盘情况ID |
FloorLevelID |
int |
Yes |
楼栋级别ID |
SortNumber |
nchar (10) |
Yes |
序号 |
FloorName |
nchar (20) |
Yes |
楼栋名称 |
PropertyRightFloorName |
nchar (20) |
Yes |
产权楼栋名称 |
FloorStorey |
nchar (10) |
Yes |
楼栋层数 |
LaunchDate |
datetime |
Yes |
推出日期 |
DoMortgageDate |
datetime |
Yes |
具备办按揭日期 |
CapsDate |
datetime |
Yes |
封顶日期 |
AccumulationFundDate |
datetime |
Yes |
具备办公积金日期 |
ExpectedPayDate |
datetime |
Yes |
预计交房日期 |
PropertyRightDate |
datetime |
Yes |
具备办产权日期 |
MakingRoomDate |
datetime |
Yes |
交房日期 |
表3: 项目信息表(dbo.SYS_ProjectInformation)
Primary Key(主键): ProjectID
非主键ID值均是外键
列名 |
数据类型 |
默认值 |
Nulls? |
说明 |
ProjectID |
int - Identity |
No |
项目ID |
|
SortNumber |
int |
Yes |
排序号 |
|
ProjectAreaID |
int |
Yes |
属性明细表,项目区域ID |
|
Project_FatherlID |
int |
Yes |
项目信息表,项目级别ID |
|
ProjectName |
nchar (20) |
Yes |
项目名称 |
|
PropertyRightProjectName |
nchar (20) |
Yes |
产权项目名称 |
|
ProjectCompanyName |
nchar (20) |
Yes |
项目公司名称 |
|
ProjectAddress |
nchar (50) |
Yes |
项目座落地址 |
|
CaseWhether |
bit |
Yes |
是否结案 |
|
CancelWhether |
bit |
((0)) |
Yes |
有效否 |
表4: 客户信息 (dbo.PW_ClientInformation)
Primary Key(主键): ClientID
非主键ID值均是外键
列名 |
数据类型 |
默认值 |
Nulls? |
说明 |
ClientID |
int - Identity |
No |
客户ID |
|
ProjectID |
int |
Yes |
项目信息表,项目ID |
|
ClientNumber |
nchar (10) |
Yes |
客户编号 |
|
ClientName |
nchar (10) |
Yes |
客户名称 |
|
EarlyVisitIntention |
nchar (10) |
Yes |
初访意向 |
|
Gender |
nchar (10) |
Yes |
性别 |
|
MaritalStatus |
nchar (10) |
Yes |
婚否 |
|
ClientRegistrationWayID |
int |
Yes |
属性明细表,客户登记方式ID |
|
RelationPhone |
nchar (15) |
Yes |
联系电话 |
|
ElectronMail |
nchar (30) |
Yes |
电子邮箱 |
|
HomeBuyerConsultantID |
int |
Yes |
员工表,置业顾问ID |
|
DateOfVisit |
datetime |
Yes |
来访日期 |
|
CommunicationAddress |
nchar (50) |
Yes |
通讯地址 |
|
Postcode |
nchar (10) |
Yes |
邮编 |
|
IDentityCard |
nchar (30) |
Yes |
身份证号 |
|
BirthDay |
date |
Yes |
出生日期 |
|
Age |
nchar (20) |
Yes |
年龄 |
|
Professional |
nchar (20) |
Yes |
职业 |
|
NowLivingArea |
nchar (20) |
Yes |
现居住区域 |
|
LearnTheWayToTheCase |
nchar (20) |
Yes |
获取本案途径 |
|
VisitConstitute |
nchar (20) |
Yes |
来客构成 |
|
Traffic |
nchar (20) |
Yes |
交通 |
|
RealEstateSituation |
nchar (20) |
Yes |
置业状况 |
|
ResidentialMortgageLoans |
nchar (20) |
Yes |
住宅按揭贷款 |
|
HomesBuyersPurpose |
nchar (20) |
Yes |
置业目的 |
|
PlanTorealEstatePrice |
nchar (20) |
Yes |
计划置业价格 |
|
DemandArea |
nchar (20) |
Yes |
需求面积 |
|
PaymentWay |
nchar (20) |
Yes |
付款方式ID |
|
BuyingConsideration |
nchar (20) |
Yes |
买房考虑因素 |
|
IncalidOr |
bit |
((0)) |
Yes |
作废否 |
表5: 预定表 (dbo.PW_ReserveUnit)
Primary Key(主键): ReserveUnitID
非主键ID值均是外键
列名 |
数据类型 |
默认值 |
Nulls? |
说明 |
ReserveUnitID |
int - Identity |
No |
预订单元ID |
|
ClientID |
int |
Yes |
客户表,客户ID |
|
FloorID |
int |
Yes |
楼栋信息表,楼栋ID |
|
UnitNumberID |
int |
Yes |
单元表,单元ID |
|
RoomNumeral |
nchar (10) |
Yes |
房间排号 |
|
PresalseArea |
nchar (10) |
Yes |
预售面积 |
|
ReservationPrice |
money |
Yes |
预收单价 |
|
BookingReservationPrice |
money |
Yes |
预定总价 |
|
AccountsReceivableBookingGoid |
money |
Yes |
应收预约金 |
|
BookingDate |
datetime |
Yes |
预定日期 |
|
ValidDate |
datetime |
Yes |
有效日期 |
|
BriefNote |
nchar (20) |
Yes |
简要备注 |
|
AuditDate |
date |
Yes |
审核日期 |
|
NewReserveUnitID |
int |
Yes |
预定表,新预定ID |
|
ChangeReason |
int |
Yes |
属性明细表,变更原因ID |
|
IncalidOr |
bit |
((0)) |
Yes |
作废否 |
表6: 员工表 (dbo. SYS_Staff)
Primary Key(主键): StaffID
非主键ID值均是外键
列名 |
数据类型 |
Nulls? |
说明 |
StaffID |
int - Identity |
No |
员工ID |
StaffNumber |
nchar (10) |
Yes |
员工编号 |
StaffName |
nchar (10) |
Yes |
员工姓名 |
DepartMentID |
int |
Yes |
所属部门 |
GenderID |
int |
Yes |
属性明细表,性别ID |
Age |
int |
Yes |
年龄 |
EducationBackgroundID |
int |
Yes |
属性明细表,学历ID |
MarryWhether |
bit |
Yes |
婚否 |
Position |
nchar (10) |
Yes |
职位 |
ContactPhoneNumber |
nchar (15) |
Yes |
联系电话 |
ContactAddress |
nchar (20) |
Yes |
联系地址 |
Notes |
nchar (100) |
Yes |
备注 |
StaffImage |
image |
Yes |
员工照片 |
表7: 属性明细表(dbo.SYS_AttributeDetails)
Primary Key(主键): AttributeDetailsID
列名 |
数据类型 |
默认值 |
Nulls? |
说明 |
AttributeDetailsID |
int - Identity |
No |
属性明细ID |
|
AuttributeSetID |
int |
Yes |
属性集合表,属性集合ID |
|
AuttributeDetailsName |
nchar (10) |
Yes |
属性明细名称 |
|
EffectiveWhether |
bit |
((1)) |
Yes |
有效否 |
2、具体的代码实现
第一步:数据库的存储过程
if @Type='ReserveManagement_Load_BindingdgvProject'--查询项目信息
begin
SELECT ProjectID,RTRIM( ProjectName) as ProjectName
FROM SYS_ProjectInformation
endif @Type='dgvProject_CellDoubleClick_BindtvwFloor'--查询楼栋信息
begin
SELECT FloorID, RTRIM( FloorName) as FloorName
FROM SYS_FloorInformation
where SYS_FloorInformation.ProjectID=@ProjectID
endif @Type='dgvProject_CellDoubleClick_BindtvwRoom'--条件查询房源信息
begin
SELECT RoomResourcesID, RTRIM( Number) as Number
FROM SYS_RoomResources
where SYS_RoomResources.FloorID=@FloorID
endif @Type='tvwFloor_NodeMouseClick_SelectMsg'--根据楼栋ID来查询相关信息
begin
SELECT RTRIM(SYS_FloorInformation.FloorName) AS FloorName, RTRIM(SYS_RoomResources.Number) AS Number, RTRIM(PW_ClientInformation.ClientName) AS ClientName, RTRIM(PW_ClientInformation.Gender) AS Gender, RTRIM(PW_ClientInformation.RelationPhone) AS RelationPhone, RTRIM(PW_ClientInformation.CommunicationAddress) AS CommunicationAddress, RTRIM(PW_ReserveUnit.PresalseArea) AS PresalseArea, RTRIM(PW_ReserveUnit.ReservationPrice) AS ReservationPrice, RTRIM(PW_ReserveUnit.BookingReservationPrice) AS BookingReservationPrice, RTRIM(PW_ReserveUnit.AccountsReceivableBookingGoid) AS AccountsReceivableBookingGoid, PW_ReserveUnit.BookingDate, PW_ReserveUnit.ValidDate, RTRIM(PW_ReserveUnit.BriefNote) AS BriefNote, RTRIM(PW_ClientInformation.Age) AS Age, PW_ReserveUnit.ReserveUnitID, SYS_RoomResources.RoomResourcesID, SYS_ProjectInformation.ProjectID, SYS_FloorInformation.FloorID, PW_ReserveUnit.ClientID
FROM PW_ReserveUnit INNER JOINSYS_FloorInformation ON PW_ReserveUnit.FloorID = SYS_FloorInformation.FloorID INNER JOINSYS_RoomResources ON PW_ReserveUnit.UnitNumberID = SYS_RoomResources.RoomResourcesID INNER JOINPW_ClientInformation ON PW_ReserveUnit.ClientID = PW_ClientInformation.ClientID INNER JOINSYS_ProjectInformation ON SYS_FloorInformation.ProjectID = SYS_ProjectInformation.ProjectIDwhere SYS_RoomResources.FloorID=@FloorID and PW_ReserveUnit.IncalidOr=0
endif @Type='ReserveManagement_Load_SelectAllMsg'--查询所有未作废的信息
begin
SELECT RTRIM(SYS_FloorInformation.FloorName) AS FloorName, RTRIM(SYS_RoomResources.Number) AS Number, RTRIM(PW_ClientInformation.ClientName) AS ClientName, RTRIM(PW_ClientInformation.Gender) AS Gender, RTRIM(PW_ClientInformation.RelationPhone) AS RelationPhone, RTRIM(PW_ClientInformation.CommunicationAddress) AS CommunicationAddress, RTRIM(PW_ReserveUnit.PresalseArea) AS PresalseArea, RTRIM(PW_ReserveUnit.ReservationPrice) AS ReservationPrice, RTRIM(PW_ReserveUnit.BookingReservationPrice) AS BookingReservationPrice, RTRIM(PW_ReserveUnit.AccountsReceivableBookingGoid) AS AccountsReceivableBookingGoid, PW_ReserveUnit.BookingDate, PW_ReserveUnit.ValidDate, RTRIM(PW_ReserveUnit.BriefNote) AS BriefNote, RTRIM(PW_ClientInformation.Age) AS Age, PW_ReserveUnit.ReserveUnitID, SYS_RoomResources.RoomResourcesID, SYS_ProjectInformation.ProjectID, SYS_FloorInformation.FloorID, PW_ReserveUnit.ClientID
FROM PW_ReserveUnit INNER JOINSYS_FloorInformation ON PW_ReserveUnit.FloorID = SYS_FloorInformation.FloorID INNER JOINSYS_RoomResources ON PW_ReserveUnit.UnitNumberID = SYS_RoomResources.RoomResourcesID INNER JOINPW_ClientInformation ON PW_ReserveUnit.ClientID = PW_ClientInformation.ClientID INNER JOINSYS_ProjectInformation ON SYS_FloorInformation.ProjectID = SYS_ProjectInformation.ProjectID
where PW_ReserveUnit.IncalidOr=0
end if @Type='tsbtnDeleteReserve_Click_Update'--修改房源的状态
begin
UPDATE PW_ReserveUnit
SET IncalidOr = 1
where PW_ReserveUnit.ReserveUnitID=@ReserveUnitIDUPDATE SYS_RoomResources
SET SalesStatusID = 102
where SYS_RoomResources.RoomResourcesID=@RoomResourcesID
end
第二步:逻辑层(BLL)相关代码
[ServiceContract]public class frmMarketManagement_ReserveManagement{DALPublic.DALPublic myDALPublic = new DALPublic.DALPublic();[OperationContract]#region 绑㨮定¡§dgv项?目?public DataSet ReserveManagement_Load_BindingdgvProject(){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),};SQLCMDpas[0].Value = "ReserveManagement_Load_BindingdgvProject";DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 绑㨮定¡§树º¡Â状Á¡ä图ª?楼£¤栋¡ãpublic DataSet dgvProject_CellDoubleClick_BindtvwFloor(int intProjectID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@ProjectID", SqlDbType.Int),};SQLCMDpas[0].Value = "dgvProject_CellDoubleClick_BindtvwFloor";SQLCMDpas[1].Value = intProjectID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 绑㨮定¡§树º¡Â状Á¡ä图ª?房¤?间?public DataSet dgvProject_CellDoubleClick_BindtvwRoom(int intFloorID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@FloorID", SqlDbType.Int),};SQLCMDpas[0].Value = "dgvProject_CellDoubleClick_BindtvwRoom";SQLCMDpas[1].Value = intFloorID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 绑㨮定¡§dgv预¡è订?信?息¡épublic DataSet tvwFloor_NodeMouseClick_SelectMsg(int intFloorID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@FloorID", SqlDbType.Int),};SQLCMDpas[0].Value = "tvwFloor_NodeMouseClick_SelectMsg";SQLCMDpas[1].Value = intFloorID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 绑㨮定¡§dgv预¡è订?信?息¡épublic int tsbtnDeleteReserve_Click_Update(int intReserveUnitID, int intRoomResourcesID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@ReserveUnitID", SqlDbType.Int),new SqlParameter("@RoomResourcesID", SqlDbType.Int),};SQLCMDpas[0].Value = "tsbtnDeleteReserve_Click_Update";SQLCMDpas[1].Value = intReserveUnitID;SQLCMDpas[2].Value = intRoomResourcesID;return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ReserveManagement", SQLCMDpas);}#endregion [OperationContract]#region 查¨¦询¡¥所¨´有®D的Ì?预¡è定¡§信?息¡épublic DataSet ReserveManagement_Load_SelectAllMsg(){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),};SQLCMDpas[0].Value = "ReserveManagement_Load_SelectAllMsg";DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion }
第三步:界面层(UIL)相关代码及说明
public partial class frmMarketManagement_ReserveManagement : Form{frmMain frmmain;public frmMarketManagement_ReserveManagement(frmMain frm)//窗体传值{frmmain = frm;InitializeComponent();}BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ReserveManagement.frmMarketManagement_ReserveManagementClient myfrmMarketManagement_ReserveManagementClient = new BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ReserveManagement.frmMarketManagement_ReserveManagementClient();//实例化逻辑层private void tsbtnClose_Click(object sender, EventArgs e){this.Close();//关闭窗体}private void frmMarketManagement_ReserveManagement_Load(object sender, EventArgs e)//窗体的加载事件{tvwFloor.Nodes.Clear();//所有的树节点都清空dgvProject.DataSource = myfrmMarketManagement_ReserveManagementClient.ReserveManagement_Load_BindingdgvProject().Tables[0];DataTable dtReserved = myfrmMarketManagement_ReserveManagementClient.ReserveManagement_Load_SelectAllMsg().Tables[0];dgvReserveUnit.DataSource = dtReserved;//绑定dgvReserveUnit数据源}private void frmMarketManagement_ReserveManagement_FormClosing(object sender, FormClosingEventArgs e)//在窗体关闭时发生的事件{frmmain.RemoveTabPage();//调用主界面里边的构造函数}private void tsbtnInsertReserve_Click(object sender, EventArgs e)//新增预定的单击事件{if (intProjectID == 0){MessageBox.Show("请选择一个项目后继续!!!");return;}frmMarketManagement_ReserveManagement_InsertReserve myfrmMarketManagement_ReserveManagement_InsertReserve = new frmMarketManagement_ReserveManagement_InsertReserve(this);myfrmMarketManagement_ReserveManagement_InsertReserve.ShowDialog();//新增预定界面的弹出}private void btnSelect_Click(object sender, EventArgs e){dgvProject.Visible = true;//设置dgvProject的可见性为真}private void dgvProject_MouseLeave(object sender, EventArgs e){dgvProject.Visible = false;//是指dgvProject的可见性未假}public int intProjectID = 0;private void dgvProject_CellDoubleClick(object sender, DataGridViewCellEventArgs e)//dgvProject单元格的双击双击事件{intFloorID = 0;txtProjectName.Text = dgvProject.CurrentRow.Cells["项目名称"].Value.ToString().Trim();intProjectID = Convert.ToInt32( dgvProject.CurrentRow.Cells["项目ID"].Value);dgvProject.Visible = false;DataTable dtFloor = myfrmMarketManagement_ReserveManagementClient.dgvProject_CellDoubleClick_BindtvwFloor(intProjectID).Tables[0];BindtvwFloor_FullProject(dtFloor);//调用执行绑定树状图的构造函数MultSelect( intProjectID, intFloorID);//调用不定条件查询的构造函数}public void MultSelect(int intProjectID, int intFloorID)//不定条件查询的构造函数{string strCondition = " 1=1 ";DataTable dtMsg = myfrmMarketManagement_ReserveManagementClient.ReserveManagement_Load_SelectAllMsg().Tables[0];DataView dv = new DataView(dtMsg);if (intProjectID != 0){strCondition += " and ProjectID = " + intProjectID;}if (intFloorID != 0){strCondition += " and FloorID = " + intFloorID;}dv.RowFilter = strCondition;DataTable dt = dv.ToTable();dgvReserveUnit.DataSource = dt;}void BindtvwFloor_FullProject(DataTable dt)//执行绑定树状图的构造函数{tvwFloor.Nodes.Clear();for (int i = 0; i < dt.Rows.Count; i++)//遍历绑定顶级节点{TreeNode tn = new TreeNode();//实例化节点tn.Text = dt.Rows[i]["FloorName"].ToString();//指定节点文本tn.Tag = dt.Rows[i]["FloorID"];//绑定节点数据tvwFloor.Nodes.Add(tn);//将节点添加到树控件}}public int intFloorID = 0;private void tvwFloor_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e){intFloorID = (int)e.Node.Tag;MultSelect(intProjectID, intFloorID);}private void tsbtnChangeReserve_Click(object sender, EventArgs e)//换定预定的单击事件{ if (intReserveUnitID == 0){MessageBox.Show("请选择一条预订信息后继续!!!");return;}frmMarketManagement_ReserveManagement_ChangeReserve myfrmMarketManagement_ReserveManagement_ChangeReserve = new frmMarketManagement_ReserveManagement_ChangeReserve(this);myfrmMarketManagement_ReserveManagement_ChangeReserve.Show();//窗体的跳转}public int intReserveUnitID = 0;public int intRoomResourceID = 0;public int intfloorID = 0;public int intCustomerID = 0;private void dgvReserveUnit_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)//dgvReserveUnit的单击事件{if (dgvReserveUnit.CurrentRow != null && dgvReserveUnit.CurrentCell != null){intReserveUnitID = Convert.ToInt32(dgvReserveUnit.CurrentRow.Cells["预订单元ID"].Value);intProjectID = Convert.ToInt32(dgvReserveUnit.CurrentRow.Cells["ProjectID"].Value);intRoomResourceID = Convert.ToInt32(dgvReserveUnit.CurrentRow.Cells["RoomResourcesID"].Value);intfloorID = Convert.ToInt32(dgvReserveUnit.CurrentRow.Cells["FloorID"].Value);intCustomerID = Convert.ToInt32(dgvReserveUnit.CurrentRow.Cells["ClientID"].Value);}}private void tsbtnReserveToSubscribe_Click(object sender, EventArgs e)//预定转认购的单击事件{if (intProjectID == 0){MessageBox.Show("请选择一个项目后才能继续此操作!!!");return;}if (intReserveUnitID == 0){MessageBox.Show("请选择一条预订信息后才能继续此操作!!!");return;}frmMarketManagement_ReserveManagement_ReserveToSubscribe myfrmMarketManagement_ReserveManagement_ReserveToSubscribe = new frmMarketManagement_ReserveManagement_ReserveToSubscribe(this);myfrmMarketManagement_ReserveManagement_ReserveToSubscribe.ShowDialog();//窗体弹出}private void tsbtnDeleteReserve_Click(object sender, EventArgs e)//删除预留{int intSelectedNumber = 0;int intSuccessNumber = 0;dgvReserveUnit.EndEdit();foreach (DataGridViewRow dgvr in dgvReserveUnit.Rows)//循环遍历{if (Convert.ToBoolean(dgvr.Cells["选择"].FormattedValue)){intSelectedNumber++;int intReservedUnitID = (int)dgvr.Cells["预订单元ID"].Value;int intRoomResourceID = (int)dgvr.Cells["RoomResourcesID"].Value;int myop = myfrmMarketManagement_ReserveManagementClient.tsbtnDeleteReserve_Click_Update(intReservedUnitID, intRoomResourceID);if (myop > 0){intSuccessNumber++;}}}MessageBox.Show("已选择" + intSelectedNumber + "条数据,\n" + "已删除" + intSuccessNumber + "条数据,\n" + (intSelectedNumber - intSuccessNumber) + "删除失败!", "提示");MultSelect(intProjectID,intfloorID);}public void tsbtnRefresh_Click(object sender, EventArgs e)//刷新单击事件{frmMarketManagement_ReserveManagement_Load(null,null);}}
2.添加预定信息
从界面上可以看到我们这里用到的控件有
控件名称 |
说明 |
标注(Label) |
控件可以在工具箱直接拖动至窗体,拖至窗体后右击属性可以修改控件的样式和各种属性,还可以编辑事件。 |
下拉框(ComboBox) |
|
文本(TextBox) |
|
按钮(Button) |
|
日期控件(DateTimePicker) |
|
分组容器(GroupBox) |
|
图片列表(ImageList) |
|
表格(DataGridView) |
功能实现:
第一步:数据库
1、表与关系
表1: 房间资源表(dbo.SYS_RoomResource)
Primary Key(主键): RoomResourcesID
非主键ID值均是外键
列名 |
数据类型 |
默认值 |
Nulls? |
说明 |
RoomResourcesID |
int - Identity |
No |
房间资源ID |
|
FloorID |
int |
Yes |
楼栋信息表,楼栋ID |
|
TheCodeModelID |
int |
Yes |
属性明细表,代码模式ID |
|
Number |
nchar (10) |
Yes |
编号 |
|
UnitNumberID |
int |
Yes |
单元表,单元ID |
|
FloorStotey |
nchar (10) |
Yes |
楼层 |
|
RoomCategoryID |
int |
Yes |
属性明细表,房间类别ID |
|
TowardID |
int |
Yes |
属性明细表,朝向ID |
|
DoorModelID |
int |
Yes |
属性明细表,户型ID |
|
RoomTypeID |
int |
Yes |
属性明细表,房间类型ID |
|
RoomLandScapeID |
int |
Yes |
属性明细表,房间景观ID |
|
RoomSpecialID |
int |
Yes |
属性明细表,房间特殊ID |
|
ConstructionArea |
decimal (18, 2) |
Yes |
建筑面积 |
|
PricateArea |
decimal (18, 2) |
Yes |
私有面积 |
|
PublicArea |
decimal (18, 2) |
Yes |
公摊面积 |
|
Usage |
decimal (18, 2) |
Yes |
使用率 |
|
TheUnitPrice |
decimal (18, 2) |
Yes |
标价单价 |
|
BidPrice |
decimal (18, 2) |
Yes |
标价总价 |
|
NumberOfPrice |
nchar (10) |
Yes |
价格次数 |
|
SalesStatusID |
int |
((102)) |
Yes |
属性明细表,销售状态ID |
BriefNote |
nchar (30) |
Yes |
简要备注 |
|
SchematicDiagram |
image |
Yes |
示意图 |
|
Chart |
image |
Yes |
效果图 |
表2: 楼栋信息表(dbo.SYS_FloorInformation)
Primary Key(主键): FloorID
非主键ID值均是外键
(这里因为在这个表里边没有设置有默认值,所以没有默认值的那一列)
列名 |
数据类型 |
Nulls? |
说明 |
FloorID |
int - Identity |
No |
楼栋ID |
ProjectID |
int |
Yes |
项目信息表,项目ID |
FloorStructureID |
int |
Yes |
属性明细表,楼栋结构ID |
OpenBatchID |
int |
Yes |
属性明细表,开盘批次ID |
LaunchSituationID |
int |
Yes |
属性明细表,推出情况ID |
OpeningSituationID |
int |
Yes |
属性明细表,开盘情况ID |
FloorLevelID |
int |
Yes |
楼栋级别ID |
SortNumber |
nchar (10) |
Yes |
序号 |
FloorName |
nchar (20) |
Yes |
楼栋名称 |
PropertyRightFloorName |
nchar (20) |
Yes |
产权楼栋名称 |
FloorStorey |
nchar (10) |
Yes |
楼栋层数 |
LaunchDate |
datetime |
Yes |
推出日期 |
DoMortgageDate |
datetime |
Yes |
具备办按揭日期 |
CapsDate |
datetime |
Yes |
封顶日期 |
AccumulationFundDate |
datetime |
Yes |
具备办公积金日期 |
ExpectedPayDate |
datetime |
Yes |
预计交房日期 |
PropertyRightDate |
datetime |
Yes |
具备办产权日期 |
MakingRoomDate |
datetime |
Yes |
交房日期 |
表3: 客户信息 (dbo.PW_ClientInformation)
Primary Key(主键): ClientID
非主键ID值均是外键
列名 |
数据类型 |
默认值 |
Nulls? |
说明 |
ClientID |
int - Identity |
No |
客户ID |
|
ProjectID |
int |
Yes |
项目信息表,项目ID |
|
ClientNumber |
nchar (10) |
Yes |
客户编号 |
|
ClientName |
nchar (10) |
Yes |
客户名称 |
|
EarlyVisitIntention |
nchar (10) |
Yes |
初访意向 |
|
Gender |
nchar (10) |
Yes |
性别 |
|
MaritalStatus |
nchar (10) |
Yes |
婚否 |
|
ClientRegistrationWayID |
int |
Yes |
属性明细表,客户登记方式ID |
|
RelationPhone |
nchar (15) |
Yes |
联系电话 |
|
ElectronMail |
nchar (30) |
Yes |
电子邮箱 |
|
HomeBuyerConsultantID |
int |
Yes |
员工表,置业顾问ID |
|
DateOfVisit |
datetime |
Yes |
来访日期 |
|
CommunicationAddress |
nchar (50) |
Yes |
通讯地址 |
|
Postcode |
nchar (10) |
Yes |
邮编 |
|
IDentityCard |
nchar (30) |
Yes |
身份证号 |
|
BirthDay |
date |
Yes |
出生日期 |
|
Age |
nchar (20) |
Yes |
年龄 |
|
Professional |
nchar (20) |
Yes |
职业 |
|
NowLivingArea |
nchar (20) |
Yes |
现居住区域 |
|
LearnTheWayToTheCase |
nchar (20) |
Yes |
获取本案途径 |
|
VisitConstitute |
nchar (20) |
Yes |
来客构成 |
|
Traffic |
nchar (20) |
Yes |
交通 |
|
RealEstateSituation |
nchar (20) |
Yes |
置业状况 |
|
ResidentialMortgageLoans |
nchar (20) |
Yes |
住宅按揭贷款 |
|
HomesBuyersPurpose |
nchar (20) |
Yes |
置业目的 |
|
PlanTorealEstatePrice |
nchar (20) |
Yes |
计划置业价格 |
|
DemandArea |
nchar (20) |
Yes |
需求面积 |
|
PaymentWay |
nchar (20) |
Yes |
付款方式ID |
|
BuyingConsideration |
nchar (20) |
Yes |
买房考虑因素 |
|
IncalidOr |
bit |
((0)) |
Yes |
作废否 |
表4: 预定表 (dbo.PW_ReserveUnit)
Primary Key(主键): ReserveUnitID
非主键ID值均是外键
列名 |
数据类型 |
默认值 |
Nulls? |
说明 |
ReserveUnitID |
int - Identity |
No |
预订单元ID |
|
ClientID |
int |
Yes |
客户表,客户ID |
|
FloorID |
int |
Yes |
楼栋信息表,楼栋ID |
|
UnitNumberID |
int |
Yes |
单元表,单元ID |
|
RoomNumeral |
nchar (10) |
Yes |
房间排号 |
|
PresalseArea |
nchar (10) |
Yes |
预售面积 |
|
ReservationPrice |
money |
Yes |
预收单价 |
|
BookingReservationPrice |
money |
Yes |
预定总价 |
|
AccountsReceivableBookingGoid |
money |
Yes |
应收预约金 |
|
BookingDate |
datetime |
Yes |
预定日期 |
|
ValidDate |
datetime |
Yes |
有效日期 |
|
BriefNote |
nchar (20) |
Yes |
简要备注 |
|
AuditDate |
date |
Yes |
审核日期 |
|
NewReserveUnitID |
int |
Yes |
预定表,新预定ID |
|
ChangeReason |
int |
Yes |
属性明细表,变更原因ID |
|
IncalidOr |
bit |
((0)) |
Yes |
作废否 |
表5: 员工表 (dbo. SYS_Staff)
Primary Key(主键): StaffID
非主键ID值均是外键
列名 |
数据类型 |
Nulls? |
说明 |
StaffID |
int - Identity |
No |
员工ID |
StaffNumber |
nchar (10) |
Yes |
员工编号 |
StaffName |
nchar (10) |
Yes |
员工姓名 |
DepartMentID |
int |
Yes |
所属部门 |
GenderID |
int |
Yes |
属性明细表,性别ID |
Age |
int |
Yes |
年龄 |
EducationBackgroundID |
int |
Yes |
属性明细表,学历ID |
MarryWhether |
bit |
Yes |
婚否 |
Position |
nchar (10) |
Yes |
职位 |
ContactPhoneNumber |
nchar (15) |
Yes |
联系电话 |
ContactAddress |
nchar (20) |
Yes |
联系地址 |
Notes |
nchar (100) |
Yes |
备注 |
StaffImage |
image |
Yes |
员工照片 |
2、具体的代码实现
第一步:数据库的存储过程
if @Type='InsertReserve_Load_BindingdgvCustomer'--查询客户信息
begin
SELECT ClientID, RTRIM(ClientName) AS ClientName, RTRIM(RelationPhone) AS RelationPhone, Gender AS 性别, CommunicationAddress, ClientNumber, IDentityCard, Postcode, HomeBuyerConsultantID
FROM PW_ClientInformation
where PW_ClientInformation.IncalidOr=0 and PW_ClientInformation.ProjectID=@ProjectID
endif @Type='InsertReserve_Load_BindingcboFloorNumber'--查询楼栋信息
begin
SELECT FloorID, rtrim(FloorName) as FloorName
FROM SYS_FloorInformation
where SYS_FloorInformation.ProjectID=@ProjectID
endif @Type='InsertReserve_Load_BindingcboUnitNumber'--查询房源信息
begin
SELECT RoomResourcesID, rtrim(Number) as Number
FROM SYS_RoomResources
where SYS_RoomResources.FloorID=@FloorID and SYS_RoomResources.SalesStatusID=102
endif @Type='InsertReserve_Load_BindingcboHomeBuyersConsultant'--查询置业顾问
begin
SELECT StaffID, rtrim(StaffName) as StaffName
FROM SYS_Staff
endif @Type='cboUnitNumber_SelectionChangeCommitted_SelectPrivateArea'--查询某一房源的面积
begin
SELECT rtrim(PricateArea) PricateArea
FROM SYS_RoomResources
where SYS_RoomResources.RoomResourcesID=@RoomResourcesID
endif @Type='btnSaveAndInsert_Click_Insert'--新增预定
begin
INSERT INTO PW_ReserveUnit(ClientID, FloorID, UnitNumberID, RoomNumeral, PresalseArea, ReservationPrice, BookingReservationPrice, AccountsReceivableBookingGoid, BookingDate, ValidDate, BriefNote)
VALUES (@ClientID, @FloorID, @UnitNumberID, @RoomNumeral, @PresalseArea, @ReservationPrice, @BookingReservationPrice, @AccountsReceivableBookingGoid, @BookingDate, @ValidDate, @BriefNote)
endif @Type='btnSaveAndInsert_Click_UpdateRoomStatus'--修改房源的销售状态
begin
UPDATE SYS_RoomResources
SET SalesStatusID =99
where SYS_RoomResources.RoomResourcesID=@RoomResourcesID
end
第二步:逻辑层(BLL)相关代码
[ServiceContract]public class frmMarketManagement_ReserveManagement_InsertReserve{DALPublic.DALPublic myDALPublic = new DALPublic.DALPublic();[OperationContract]#region 绑定dgv客户public DataSet InsertReserve_Load_BindingdgvCustomer(int intProjectID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@ProjectID", SqlDbType.Int),};SQLCMDpas[0].Value = "InsertReserve_Load_BindingdgvCustomer";SQLCMDpas[1].Value = intProjectID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_InsertReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 条件绑定cbo楼栋public DataSet InsertReserve_Load_BindingcboFloorNumber(int intProjectID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@ProjectID", SqlDbType.Int),};SQLCMDpas[0].Value = "InsertReserve_Load_BindingcboFloorNumber";SQLCMDpas[1].Value = intProjectID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_InsertReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 条件绑定cbo单元public DataSet InsertReserve_Load_BindingcboUnitNumber(int intFloorID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@FloorID", SqlDbType.Int),};SQLCMDpas[0].Value = "InsertReserve_Load_BindingcboUnitNumber";SQLCMDpas[1].Value = intFloorID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_InsertReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 条件绑定cbo置业顾问public DataSet InsertReserve_Load_BindingcboHomeBuyersConsultant(){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),};SQLCMDpas[0].Value = "InsertReserve_Load_BindingcboHomeBuyersConsultant";DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_InsertReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 绑定预售面积public DataSet cboUnitNumber_SelectionChangeCommitted_SelectPrivateArea(int intRoomResourcesID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@RoomResourcesID", SqlDbType.Int),};SQLCMDpas[0].Value = "cboUnitNumber_SelectionChangeCommitted_SelectPrivateArea";SQLCMDpas[1].Value = intRoomResourcesID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_InsertReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 新增预订public int btnSaveAndInsert_Click_Insert(int intClientID, int intFloorID, int intUnitNumberID, string strRoomNumeral, decimal decPresalseArea, decimal decReservationPrice, decimal decBookingReservationPrice, decimal decAccountsReceivableBookingGoid, DateTime dtmBookingDate, DateTime dtmValidDate, string strBriefNote){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@ClientID", SqlDbType.Int),new SqlParameter("@FloorID", SqlDbType.Int),new SqlParameter("@UnitNumberID", SqlDbType.Int),new SqlParameter("@RoomNumeral", SqlDbType.Char),new SqlParameter("@PresalseArea", SqlDbType.Decimal),new SqlParameter("@ReservationPrice", SqlDbType.Decimal),new SqlParameter("@BookingReservationPrice", SqlDbType.Decimal),new SqlParameter("@AccountsReceivableBookingGoid", SqlDbType.Decimal),new SqlParameter("@BookingDate", SqlDbType.DateTime),new SqlParameter("@ValidDate", SqlDbType.DateTime),new SqlParameter("@BriefNote", SqlDbType.Char),};SQLCMDpas[0].Value = "btnSaveAndInsert_Click_Insert";SQLCMDpas[1].Value = intClientID;SQLCMDpas[2].Value = intFloorID;SQLCMDpas[3].Value = intUnitNumberID;SQLCMDpas[4].Value = strRoomNumeral;SQLCMDpas[5].Value = decPresalseArea;SQLCMDpas[6].Value = decReservationPrice;SQLCMDpas[7].Value = decBookingReservationPrice;SQLCMDpas[8].Value = decAccountsReceivableBookingGoid;SQLCMDpas[9].Value = dtmBookingDate;SQLCMDpas[10].Value = dtmValidDate;SQLCMDpas[11].Value = strBriefNote;return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ReserveManagement_InsertReserve", SQLCMDpas); }#endregion [OperationContract]#region 修改房间状态public int btnSaveAndInsert_Click_UpdateRoomStatus(int intRoomResourcesID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@RoomResourcesID", SqlDbType.Int),};SQLCMDpas[0].Value = "btnSaveAndInsert_Click_UpdateRoomStatus";SQLCMDpas[1].Value = intRoomResourcesID;return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ReserveManagement_InsertReserve", SQLCMDpas);}#endregion }
第三步:界面层(UIL)相关代码及说明
public partial class frmMarketManagement_ReserveManagement_InsertReserve : Form{frmMarketManagement_ReserveManagement Frm;public frmMarketManagement_ReserveManagement_InsertReserve(frmMarketManagement_ReserveManagement frm)//窗体传值{Frm = frm;InitializeComponent();}frmMarketManagement_HousingQuery FrmHousingQuery;int intprojectID = 0;public frmMarketManagement_ReserveManagement_InsertReserve(frmMarketManagement_HousingQuery frm,int intProjectID)//新增预留{intprojectID = intProjectID;FrmHousingQuery = frm;InitializeComponent();}BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ReserveManagement_InsertReserve.frmMarketManagement_ReserveManagement_InsertReserveClient myfrmMarketManagement_ReserveManagement_InsertReserveClient = new BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ReserveManagement_InsertReserve.frmMarketManagement_ReserveManagement_InsertReserveClient();//实例化逻辑层int intProjectID = 0;DataTable dtCustom = new DataTable();private void frmMarketManagement_ReserveManagement_InsertReserve_Load(object sender, EventArgs e)//窗体的加载事件{if (intprojectID != 0){intProjectID = intprojectID;}else{intProjectID = Frm.intProjectID;}dtCustom = myfrmMarketManagement_ReserveManagement_InsertReserveClient.InsertReserve_Load_BindingdgvCustomer(intProjectID).Tables[0];dgvCustomer.DataSource = dtCustom;cboFloorNumber.DataSource = myfrmMarketManagement_ReserveManagement_InsertReserveClient.InsertReserve_Load_BindingcboFloorNumber(intProjectID).Tables[0];cboFloorNumber.DisplayMember = "FloorName";cboFloorNumber.ValueMember = "FloorID";cboHomeBuyersConsultant.DataSource = myfrmMarketManagement_ReserveManagement_InsertReserveClient.InsertReserve_Load_BindingcboHomeBuyersConsultant().Tables[0];cboHomeBuyersConsultant.DisplayMember = "StaffName";cboHomeBuyersConsultant.ValueMember = "StaffID";if (intprojectID != 0){HousingQuery_To_InsertReserve_Load();}}void HousingQuery_To_InsertReserve_Load()//构造函数{cboFloorNumber.Enabled = false;cboUnitNumber.Enabled = false;cboFloorNumber.SelectedValue = FrmHousingQuery.intFloorID;cboFloorNumber_SelectionChangeCommitted(null,null);cboUnitNumber.SelectedValue = FrmHousingQuery.intRoomResourceID;cboUnitNumber_SelectionChangeCommitted(null,null);}private void btnSelect_Click(object sender, EventArgs e)//查询客户{dtCustom = myfrmMarketManagement_ReserveManagement_InsertReserveClient.InsertReserve_Load_BindingdgvCustomer(intProjectID).Tables[0];dgvCustomer.DataSource = dtCustom;if (txtNameAndClient.Text != ""){string strCondition = "ClientName like '%" + txtNameAndClient.Text.ToString().Trim() + "%'" + " Or " + " RelationPhone like '%" + txtNameAndClient.Text.ToString().Trim() + "%'";DataView dv = new DataView(dtCustom);dv.RowFilter = strCondition;DataTable dt = dv.ToTable();dgvCustomer.DataSource = dt;}elsedgvCustomer.DataSource = dtCustom;dgvCustomer.Visible = true;}private void dgvCustomer_MouseLeave(object sender, EventArgs e){dgvCustomer.Visible = false ;}int intCustomID = 0;private void dgvCustomer_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e){intCustomID = (int)dgvCustomer.CurrentRow.Cells["CustomerID"].Value;txtClientName.Text = dgvCustomer.CurrentRow.Cells["CustomName"].Value.ToString().Trim();txtTelephoneNumber.Text = dgvCustomer.CurrentRow.Cells["CustomerPhoneNumber"].Value.ToString().Trim();txtCorrespondenceAddress.Text = dgvCustomer.CurrentRow.Cells["通讯地址"].Value.ToString().Trim();txtClientNumber.Text = dgvCustomer.CurrentRow.Cells["客户编号"].Value.ToString().Trim();txtIDNumber.Text = dgvCustomer.CurrentRow.Cells["身份证号"].Value.ToString().Trim();txtZipCode.Text = dgvCustomer.CurrentRow.Cells["邮政编码"].Value.ToString().Trim();cboHomeBuyersConsultant.SelectedValue = Convert.ToInt32(dgvCustomer.CurrentRow.Cells["HomeBuyerConsultantID"].Value.ToString().Trim());dgvCustomer.Visible = false;}private void cboFloorNumber_SelectionChangeCommitted(object sender, EventArgs e){int intFloorID = (int)cboFloorNumber.SelectedValue;cboUnitNumber.DataSource = myfrmMarketManagement_ReserveManagement_InsertReserveClient.InsertReserve_Load_BindingcboUnitNumber(intFloorID).Tables[0];cboUnitNumber.DisplayMember = "Number";cboUnitNumber.ValueMember = "RoomResourcesID";}private void cboUnitNumber_SelectionChangeCommitted(object sender, EventArgs e){int intRoomID = (int)cboUnitNumber.SelectedValue;txtPresaleArea.Text = myfrmMarketManagement_ReserveManagement_InsertReserveClient.cboUnitNumber_SelectionChangeCommitted_SelectPrivateArea(intRoomID).Tables[0].Rows[0]["PricateArea"].ToString();}private void btnSaveAndInsert_Click(object sender, EventArgs e){InsertReserve();if (MessageBox.Show("是否退出?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes){this.Close();}else{ClearData();return;}}void InsertReserve(){if (intCustomID == 0){MessageBox.Show("请添加客户后继续!!!");return;}int intUnitNumberID = 0;decimal decPresalseArea = 0;decimal decReservationPrice = 0;decimal decBookingReservationPrice = 0;decimal decAccountsReceivableBookingGoid = 0;int intFloorID = (int)cboFloorNumber.SelectedValue;try{intUnitNumberID = (int)cboUnitNumber.SelectedValue;}catch{MessageBox.Show("请选择单元后继续!", "提示");return;}string strRoomNumeral = txtRoomNumeral1.Text.ToString();try{decPresalseArea = Convert.ToDecimal(txtPresaleArea.Text.ToString());decReservationPrice = Convert.ToDecimal(txtDuetotheunitprice.Text.ToString());decBookingReservationPrice = Convert.ToDecimal(txtDuetothetotalprice.Text.ToString());decAccountsReceivableBookingGoid = Convert.ToDecimal(txtAccountsreceivablebookinggold.Text.ToString());}catch{ MessageBox.Show(" 预定单价、预定总价、应收预约金后继续!", "提示");txtDuetotheunitprice.Text = "";txtDuetothetotalprice.Text = "";txtAccountsreceivablebookinggold.Text = "";txtDuetotheunitprice.Focus();return;}DateTime dtmBookingDate = dtpPrediteDate.Value;DateTime dtmValidDate = dtpEffectivedate.Value;string strBriefNote = txtBriefNotes.Text.ToString().Trim();int myop = myfrmMarketManagement_ReserveManagement_InsertReserveClient.btnSaveAndInsert_Click_Insert(intCustomID, intFloorID, intUnitNumberID, strRoomNumeral, decPresalseArea, decReservationPrice, decBookingReservationPrice, decAccountsReceivableBookingGoid, dtmBookingDate, dtmValidDate, strBriefNote);if (myop > 0){myfrmMarketManagement_ReserveManagement_InsertReserveClient.btnSaveAndInsert_Click_UpdateRoomStatus(intUnitNumberID);DateTime dtmOperatingTime = DateTime.Now;int intOperatingPerson = 1;int intOperatingType = 147;PublicMethod.Pub_InsertClientEventRecord(intCustomID, dtmOperatingTime, "添加预定", "预定单元添加");PublicMethod.Pub_InsertSalesOfServiceFloowDetail("添加预定单元", intUnitNumberID, 0, 0, 0, 0, 0, dtmOperatingTime, intOperatingPerson, intOperatingType);//添加操作记录MessageBox.Show("添加预定成功!!!");}}void ClearData(){cboFloorNumber.SelectedIndex = 0;cboUnitNumber.DataSource = null;intCustomID = 0;txtClientName.Text = "";txtTelephoneNumber.Text = "";txtCorrespondenceAddress.Text = "";txtClientNumber.Text = "";txtIDNumber.Text = "";txtZipCode.Text = "";cboHomeBuyersConsultant.SelectedIndex = 0;dgvCustomer.Visible = false;txtRoomNumeral1.Text = "";txtPresaleArea.Text = "";txtDuetotheunitprice.Text = "";txtDuetothetotalprice.Text = "";txtAccountsreceivablebookinggold.Text = "";txtBriefNotes.Text = "";dtpPrediteDate.Value = DateTime.Now;dtpEffectivedate.Value = DateTime.Now;}private void pubPrice_KeyPress(object sender, KeyPressEventArgs e){PublicMethod.pubPriceOrRate_KeyPress(sender, e);}private void btnSaveAndReturn_Click(object sender, EventArgs e){btnSaveAndInsert_Click(null,null);this.Close();}private void btnReturn_Click(object sender, EventArgs e){this.Close();}private void btnAdd_Click(object sender, EventArgs e){frmMarketManagement_ClientRegistrtion_PubRegistration myfrmMarketManagement_ClientRegistrtion_PubRegistration = new frmMarketManagement_ClientRegistrtion_PubRegistration(this, intProjectID);myfrmMarketManagement_ClientRegistrtion_PubRegistration.ShowDialog();}}
3.换订预定信息
从界面上可以看到我们这里用到的控件有
控件名称 |
说明 |
标注(Label) |
控件可以在工具箱直接拖动至窗体,拖至窗体后右击属性可以修改控件的样式和各种属性,还可以编辑事件。 |
下拉框(ComboBox) |
|
文本(TextBox) |
|
按钮(Button) |
|
日期控件(DateTimePicker) |
|
分组容器(GroupBox) |
|
图片列表(ImageList) |
|
表格(DataGridView) |
功能实现:
第一步:数据库
1、表与关系
表1: 房间资源表(dbo.SYS_RoomResource)
Primary Key(主键): RoomResourcesID
非主键ID值均是外键
列名 |
数据类型 |
默认值 |
Nulls? |
说明 |
RoomResourcesID |
int - Identity |
No |
房间资源ID |
|
FloorID |
int |
Yes |
楼栋信息表,楼栋ID |
|
TheCodeModelID |
int |
Yes |
属性明细表,代码模式ID |
|
Number |
nchar (10) |
Yes |
编号 |
|
UnitNumberID |
int |
Yes |
单元表,单元ID |
|
FloorStotey |
nchar (10) |
Yes |
楼层 |
|
RoomCategoryID |
int |
Yes |
属性明细表,房间类别ID |
|
TowardID |
int |
Yes |
属性明细表,朝向ID |
|
DoorModelID |
int |
Yes |
属性明细表,户型ID |
|
RoomTypeID |
int |
Yes |
属性明细表,房间类型ID |
|
RoomLandScapeID |
int |
Yes |
属性明细表,房间景观ID |
|
RoomSpecialID |
int |
Yes |
属性明细表,房间特殊ID |
|
ConstructionArea |
decimal (18, 2) |
Yes |
建筑面积 |
|
PricateArea |
decimal (18, 2) |
Yes |
私有面积 |
|
PublicArea |
decimal (18, 2) |
Yes |
公摊面积 |
|
Usage |
decimal (18, 2) |
Yes |
使用率 |
|
TheUnitPrice |
decimal (18, 2) |
Yes |
标价单价 |
|
BidPrice |
decimal (18, 2) |
Yes |
标价总价 |
|
NumberOfPrice |
nchar (10) |
Yes |
价格次数 |
|
SalesStatusID |
int |
((102)) |
Yes |
属性明细表,销售状态ID |
BriefNote |
nchar (30) |
Yes |
简要备注 |
|
SchematicDiagram |
image |
Yes |
示意图 |
|
Chart |
image |
Yes |
效果图 |
表2: 楼栋信息表(dbo.SYS_FloorInformation)
Primary Key(主键): FloorID
非主键ID值均是外键
(这里因为在这个表里边没有设置有默认值,所以没有默认值的那一列)
列名 |
数据类型 |
Nulls? |
说明 |
FloorID |
int - Identity |
No |
楼栋ID |
ProjectID |
int |
Yes |
项目信息表,项目ID |
FloorStructureID |
int |
Yes |
属性明细表,楼栋结构ID |
OpenBatchID |
int |
Yes |
属性明细表,开盘批次ID |
LaunchSituationID |
int |
Yes |
属性明细表,推出情况ID |
OpeningSituationID |
int |
Yes |
属性明细表,开盘情况ID |
FloorLevelID |
int |
Yes |
楼栋级别ID |
SortNumber |
nchar (10) |
Yes |
序号 |
FloorName |
nchar (20) |
Yes |
楼栋名称 |
PropertyRightFloorName |
nchar (20) |
Yes |
产权楼栋名称 |
FloorStorey |
nchar (10) |
Yes |
楼栋层数 |
LaunchDate |
datetime |
Yes |
推出日期 |
DoMortgageDate |
datetime |
Yes |
具备办按揭日期 |
CapsDate |
datetime |
Yes |
封顶日期 |
AccumulationFundDate |
datetime |
Yes |
具备办公积金日期 |
ExpectedPayDate |
datetime |
Yes |
预计交房日期 |
PropertyRightDate |
datetime |
Yes |
具备办产权日期 |
MakingRoomDate |
datetime |
Yes |
交房日期 |
表3: 客户信息 (dbo.PW_ClientInformation)
Primary Key(主键): ClientID
非主键ID值均是外键
列名 |
数据类型 |
默认值 |
Nulls? |
说明 |
ClientID |
int - Identity |
No |
客户ID |
|
ProjectID |
int |
Yes |
项目信息表,项目ID |
|
ClientNumber |
nchar (10) |
Yes |
客户编号 |
|
ClientName |
nchar (10) |
Yes |
客户名称 |
|
EarlyVisitIntention |
nchar (10) |
Yes |
初访意向 |
|
Gender |
nchar (10) |
Yes |
性别 |
|
MaritalStatus |
nchar (10) |
Yes |
婚否 |
|
ClientRegistrationWayID |
int |
Yes |
属性明细表,客户登记方式ID |
|
RelationPhone |
nchar (15) |
Yes |
联系电话 |
|
ElectronMail |
nchar (30) |
Yes |
电子邮箱 |
|
HomeBuyerConsultantID |
int |
Yes |
员工表,置业顾问ID |
|
DateOfVisit |
datetime |
Yes |
来访日期 |
|
CommunicationAddress |
nchar (50) |
Yes |
通讯地址 |
|
Postcode |
nchar (10) |
Yes |
邮编 |
|
IDentityCard |
nchar (30) |
Yes |
身份证号 |
|
BirthDay |
date |
Yes |
出生日期 |
|
Age |
nchar (20) |
Yes |
年龄 |
|
Professional |
nchar (20) |
Yes |
职业 |
|
NowLivingArea |
nchar (20) |
Yes |
现居住区域 |
|
LearnTheWayToTheCase |
nchar (20) |
Yes |
获取本案途径 |
|
VisitConstitute |
nchar (20) |
Yes |
来客构成 |
|
Traffic |
nchar (20) |
Yes |
交通 |
|
RealEstateSituation |
nchar (20) |
Yes |
置业状况 |
|
ResidentialMortgageLoans |
nchar (20) |
Yes |
住宅按揭贷款 |
|
HomesBuyersPurpose |
nchar (20) |
Yes |
置业目的 |
|
PlanTorealEstatePrice |
nchar (20) |
Yes |
计划置业价格 |
|
DemandArea |
nchar (20) |
Yes |
需求面积 |
|
PaymentWay |
nchar (20) |
Yes |
付款方式ID |
|
BuyingConsideration |
nchar (20) |
Yes |
买房考虑因素 |
|
IncalidOr |
bit |
((0)) |
Yes |
作废否 |
表4: 预定表 (dbo.PW_ReserveUnit)
Primary Key(主键): ReserveUnitID
非主键ID值均是外键
列名 |
数据类型 |
默认值 |
Nulls? |
说明 |
ReserveUnitID |
int - Identity |
No |
预订单元ID |
|
ClientID |
int |
Yes |
客户表,客户ID |
|
FloorID |
int |
Yes |
楼栋信息表,楼栋ID |
|
UnitNumberID |
int |
Yes |
单元表,单元ID |
|
RoomNumeral |
nchar (10) |
Yes |
房间排号 |
|
PresalseArea |
nchar (10) |
Yes |
预售面积 |
|
ReservationPrice |
money |
Yes |
预收单价 |
|
BookingReservationPrice |
money |
Yes |
预定总价 |
|
AccountsReceivableBookingGoid |
money |
Yes |
应收预约金 |
|
BookingDate |
datetime |
Yes |
预定日期 |
|
ValidDate |
datetime |
Yes |
有效日期 |
|
BriefNote |
nchar (20) |
Yes |
简要备注 |
|
AuditDate |
date |
Yes |
审核日期 |
|
NewReserveUnitID |
int |
Yes |
预定表,新预定ID |
|
ChangeReason |
int |
Yes |
属性明细表,变更原因ID |
|
IncalidOr |
bit |
((0)) |
Yes |
作废否 |
表5: 员工表 (dbo. SYS_Staff)
Primary Key(主键): StaffID
非主键ID值均是外键
列名 |
数据类型 |
Nulls? |
说明 |
StaffID |
int - Identity |
No |
员工ID |
StaffNumber |
nchar (10) |
Yes |
员工编号 |
StaffName |
nchar (10) |
Yes |
员工姓名 |
DepartMentID |
int |
Yes |
所属部门 |
GenderID |
int |
Yes |
属性明细表,性别ID |
Age |
int |
Yes |
年龄 |
EducationBackgroundID |
int |
Yes |
属性明细表,学历ID |
MarryWhether |
bit |
Yes |
婚否 |
Position |
nchar (10) |
Yes |
职位 |
ContactPhoneNumber |
nchar (15) |
Yes |
联系电话 |
ContactAddress |
nchar (20) |
Yes |
联系地址 |
Notes |
nchar (100) |
Yes |
备注 |
StaffImage |
image |
Yes |
员工照片 |
2、具体的代码实现
第一步:数据库的存储过程
if @Type='ChangeReserve_Load_SelectReserveMsg'--查询预留信息
begin
SELECT PW_ReserveUnit.ClientID, PW_ReserveUnit.UnitNumberID, rtrim(PW_ReserveUnit.RoomNumeral) as RoomNumeral, rtrim(PW_ReserveUnit.PresalseArea) as PresalseArea, rtrim(PW_ReserveUnit.ReservationPrice) as ReservationPrice, rtrim(PW_ReserveUnit.BookingReservationPrice) as BookingReservationPrice, rtrim(PW_ReserveUnit.AccountsReceivableBookingGoid) as AccountsReceivableBookingGoid, PW_ReserveUnit.BookingDate, PW_ReserveUnit.ValidDate, rtrim(PW_ReserveUnit.BriefNote) as BriefNote, rtrim(PW_ClientInformation.ClientName) as ClientName, SYS_FloorInformation.FloorID, rtrim(SYS_FloorInformation.FloorName) as FloorName, PW_ClientInformation.HomeBuyerConsultantID, rtrim(SYS_Staff.StaffName) as StaffName
FROM PW_ReserveUnit INNER JOINPW_ClientInformation ON PW_ReserveUnit.ClientID = PW_ClientInformation.ClientID INNER JOINSYS_FloorInformation ON PW_ReserveUnit.FloorID = SYS_FloorInformation.FloorID INNER JOINSYS_Staff ON PW_ClientInformation.HomeBuyerConsultantID = SYS_Staff.StaffID
where PW_ReserveUnit.ReserveUnitID=@ReserveUnitID
endif @Type='ChangeReserve_Load_SelectFloor'--查询楼栋
begin
SELECT FloorID, rtrim(FloorName) as FloorName
FROM SYS_FloorInformation
where SYS_FloorInformation.ProjectID=@ProjectID
endif @Type='ChangeReserve_Load_SelectOldRoom'--查询旧的房源
begin
SELECT RoomResourcesID, RTRIM(Number) AS Number, FloorID
FROM SYS_RoomResources
where SYS_RoomResources.FloorID=@FloorID and SYS_RoomResources.SalesStatusID=99
endif @Type='ChangeReserve_Load_BindingcboChangeReason'--查询变更原因
begin
SELECT AttributeDetailsID, RTRIM(AuttributeDetailsName) AS AuttributeDetailsName
FROM SYS_AttributeDetails
where SYS_AttributeDetails.AuttributeSetID=37
endif @Type='ChangeReserve_Load_SelectNewRoom'--查询新的房源
begin
SELECT RoomResourcesID,rtrim(Number) as Number
FROM SYS_RoomResources
where SYS_RoomResources.FloorID=@FloorID and SYS_RoomResources.SalesStatusID=102
endif @Type='ChangeReserve_Load_SelectHomeBuyerConsultant'--查询置业顾问
begin
SELECT StaffID, rtrim(StaffName) AS HomeBuyerConsultant
FROM SYS_Staff
endif @Type='btnSaveAndInsert_Click_Insert'--新增预定
begin
begin tran
INSERT INTO PW_ReserveUnit(ClientID, FloorID, UnitNumberID, RoomNumeral, PresalseArea, ReservationPrice, BookingReservationPrice, AccountsReceivableBookingGoid, BookingDate, ValidDate, BriefNote)
VALUES (@ClientID, @FloorID, @UnitNumberID, @RoomNumeral, @PresalseArea, @ReservationPrice, @BookingReservationPrice, @AccountsReceivableBookingGoid, @BookingDate, @ValidDate, @BriefNote)
select @@IDENTITY
commit tran
endif @Type='btnSaveAndInsert_Click_UpdateRoomStatus'--修改所预定的房源的销售状态
begin
UPDATE SYS_RoomResources
SET SalesStatusID =99
where SYS_RoomResources.RoomResourcesID=@RoomResourcesID
endif @Type='btnSaveAndInsert_Click_UpdateOldMsg'--查询旧的预定信息
begin
UPDATE PW_ReserveUnit
SET NewReserveUnitID = @NewReserveUnitID, ChangeReason = @ChangeReason, IncalidOr =1
where PW_ReserveUnit.ReserveUnitID=@ReserveUnitID
endif @Type='btnSaveAndInsert_Click_UpdateOldRoomStatus'--修改旧的房源的销售状态
begin
UPDATE SYS_RoomResources
SET SalesStatusID =102
where SYS_RoomResources.RoomResourcesID=@RoomResourcesID
endif @Type='cboUnitNumber_SelectionChangeCommitted_SelectPrivateArea'--查询房源的销售面积
begin
SELECT rtrim(PricateArea) AS PricateArea
FROM SYS_RoomResources
where SYS_RoomResources.RoomResourcesID=@RoomResourcesID
end
第二步:逻辑层(BLL)相关代码
[ServiceContract]public class frmMarketManagement_ReserveManagement_ChangeReserve{DALPublic.DALPublic myDALPublic = new DALPublic.DALPublic();[OperationContract]#region 条件绑定dgv预订信息public DataSet ChangeReserve_Load_SelectReserveMsg(int intReserveUnitID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@ReserveUnitID", SqlDbType.Char),};SQLCMDpas[0].Value = "ChangeReserve_Load_SelectReserveMsg";SQLCMDpas[1].Value = intReserveUnitID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ChangeReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 条件绑定cboFloorpublic DataSet ChangeReserve_Load_SelectFloor(int intProjectID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@ProjectID", SqlDbType.Char),};SQLCMDpas[0].Value = "ChangeReserve_Load_SelectFloor";SQLCMDpas[1].Value = intProjectID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ChangeReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 条件绑定cboRoompublic DataSet ChangeReserve_Load_SelectNewRoom(int intBuildingAMovieTheatherID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@FloorID", SqlDbType.Char),};SQLCMDpas[0].Value = "ChangeReserve_Load_SelectNewRoom";SQLCMDpas[1].Value = intBuildingAMovieTheatherID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ChangeReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 绑定已预订cbo房间public DataSet ChangeReserve_Load_SelectOldRoom(int intBuildingAMovieTheatherID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@FloorID", SqlDbType.Char),};SQLCMDpas[0].Value = "ChangeReserve_Load_SelectOldRoom";SQLCMDpas[1].Value = intBuildingAMovieTheatherID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ChangeReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 绑定cbo置业顾问public DataSet ChangeReserve_Load_SelectHomeBuyerConsultant(){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),};SQLCMDpas[0].Value = "ChangeReserve_Load_SelectHomeBuyerConsultant";DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ChangeReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 绑定cboChangeReasonpublic DataSet ChangeReserve_Load_BindingcboChangeReason(){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),};SQLCMDpas[0].Value = "ChangeReserve_Load_BindingcboChangeReason";DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ChangeReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 新增预订public DataSet btnSaveAndInsert_Click_Insert(int intClientID, int intFloorID, int intUnitNumberID, string strRoomNumeral, decimal decPresalseArea, decimal decReservationPrice, decimal decBookingReservationPrice, decimal decAccountsReceivableBookingGoid, DateTime dtmBookingDate, DateTime dtmValidDate, string strBriefNote){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@ClientID", SqlDbType.Int),new SqlParameter("@FloorID", SqlDbType.Int),new SqlParameter("@UnitNumberID", SqlDbType.Int),new SqlParameter("@RoomNumeral", SqlDbType.Char),new SqlParameter("@PresalseArea", SqlDbType.Decimal),new SqlParameter("@ReservationPrice", SqlDbType.Decimal),new SqlParameter("@BookingReservationPrice", SqlDbType.Decimal),new SqlParameter("@AccountsReceivableBookingGoid", SqlDbType.Decimal),new SqlParameter("@BookingDate", SqlDbType.DateTime),new SqlParameter("@ValidDate", SqlDbType.DateTime),new SqlParameter("@BriefNote", SqlDbType.Char),};SQLCMDpas[0].Value = "btnSaveAndInsert_Click_Insert";SQLCMDpas[1].Value = intClientID;SQLCMDpas[2].Value = intFloorID;SQLCMDpas[3].Value = intUnitNumberID;SQLCMDpas[4].Value = strRoomNumeral;SQLCMDpas[5].Value = decPresalseArea;SQLCMDpas[6].Value = decReservationPrice;SQLCMDpas[7].Value = decBookingReservationPrice;SQLCMDpas[8].Value = decAccountsReceivableBookingGoid;SQLCMDpas[9].Value = dtmBookingDate;SQLCMDpas[10].Value = dtmValidDate;SQLCMDpas[11].Value = strBriefNote;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ChangeReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 修改房间状态public int btnSaveAndInsert_Click_UpdateRoomStatus(int intRoomResourcesID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@RoomResourcesID", SqlDbType.Int),};SQLCMDpas[0].Value = "btnSaveAndInsert_Click_UpdateRoomStatus";SQLCMDpas[1].Value = intRoomResourcesID;return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ReserveManagement_ChangeReserve", SQLCMDpas);}#endregion [OperationContract]#region 修改旧的房间状态public int btnSaveAndInsert_Click_UpdateOldRoomStatus(int intRoomResourcesID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@RoomResourcesID", SqlDbType.Int),};SQLCMDpas[0].Value = "btnSaveAndInsert_Click_UpdateOldRoomStatus";SQLCMDpas[1].Value = intRoomResourcesID;return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ReserveManagement_ChangeReserve", SQLCMDpas);}#endregion [OperationContract]#region 绑定换到的新房间的预售面积public DataSet cboUnitNumber_SelectionChangeCommitted_SelectPrivateArea(int intRoomResourcesID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@RoomResourcesID", SqlDbType.Int),};SQLCMDpas[0].Value = "cboUnitNumber_SelectionChangeCommitted_SelectPrivateArea";SQLCMDpas[1].Value = intRoomResourcesID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ChangeReserve", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion [OperationContract]#region 修改旧的预订信息,以便记录public int btnSaveAndInsert_Click_UpdateOldMsg(int NewReserveUnitID,int ChangeReason,int ReserveUnitID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@NewReserveUnitID", SqlDbType.Int),new SqlParameter("@ChangeReason", SqlDbType.Int),new SqlParameter("@ReserveUnitID", SqlDbType.Int),};SQLCMDpas[0].Value = "btnSaveAndInsert_Click_UpdateOldMsg";SQLCMDpas[1].Value = NewReserveUnitID;SQLCMDpas[2].Value = ChangeReason;SQLCMDpas[3].Value = ReserveUnitID;return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ReserveManagement_ChangeReserve", SQLCMDpas);}#endregion }
第三步:界面层(UIL)相关代码及说明
public partial class frmMarketManagement_ReserveManagement_ChangeReserve : Form{frmMarketManagement_ReserveManagement Frm;public frmMarketManagement_ReserveManagement_ChangeReserve(frmMarketManagement_ReserveManagement frm)//窗体传值{Frm = frm;InitializeComponent();}BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ReserveManagement_ChangeReserve.frmMarketManagement_ReserveManagement_ChangeReserveClient myfrmMarketManagement_ReserveManagement_ChangeReserveClient = new BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ReserveManagement_ChangeReserve.frmMarketManagement_ReserveManagement_ChangeReserveClient();//实例化逻辑层int intProjectID = 0;int intReserveUnitID = 0;int intCustomID = 0;int intOldRoomID = 0;private void frmMarketManagement_ReserveManagement_ChangeReserve_Load(object sender, EventArgs e)//窗体的加载事件{intProjectID = Frm.intProjectID;intReserveUnitID = Frm.intReserveUnitID;DataTable dtFloor = myfrmMarketManagement_ReserveManagement_ChangeReserveClient.ChangeReserve_Load_SelectFloor(intProjectID).Tables[0];PublicMethod.SettingComboBox(cboFloorNumber, dtFloor, "FloorID", "FloorName", false);DataTable dtFloor1 = myfrmMarketManagement_ReserveManagement_ChangeReserveClient.ChangeReserve_Load_SelectFloor(intProjectID).Tables[0];PublicMethod.SettingComboBox(cboFloorNumber1, dtFloor1, "FloorID", "FloorName", false);cboFloorNumber.SelectedValue = Frm.intfloorID;DataTable dtOldRoom = myfrmMarketManagement_ReserveManagement_ChangeReserveClient.ChangeReserve_Load_SelectOldRoom((int)cboFloorNumber.SelectedValue).Tables[0];PublicMethod.SettingComboBox(cboUnitNumber, dtOldRoom, "RoomResourcesID", "Number", false);int RoomID = Frm.intRoomResourceID;cboUnitNumber.SelectedValue = RoomID;DataTable dtNewRoom = myfrmMarketManagement_ReserveManagement_ChangeReserveClient.ChangeReserve_Load_SelectNewRoom((int)cboFloorNumber1.SelectedValue).Tables[0];PublicMethod.SettingComboBox(cboUnitNumber1, dtNewRoom, "RoomResourcesID", "Number", false);DataTable dtChangeReason = myfrmMarketManagement_ReserveManagement_ChangeReserveClient.ChangeReserve_Load_BindingcboChangeReason().Tables[0];PublicMethod.SettingComboBox(cboChangeReason, dtChangeReason, "AttributeDetailsID", "AuttributeDetailsName", false);DataTable dtcboHomeBuyersConsultant = myfrmMarketManagement_ReserveManagement_ChangeReserveClient.ChangeReserve_Load_SelectHomeBuyerConsultant().Tables[0];PublicMethod.SettingComboBox(cboHomeBuyersConsultant, dtcboHomeBuyersConsultant, "StaffID", "HomeBuyerConsultant", false);DataTable dtReserveMsg = myfrmMarketManagement_ReserveManagement_ChangeReserveClient.ChangeReserve_Load_SelectReserveMsg(intReserveUnitID).Tables[0];cboFloorNumber.SelectedValue = Convert.ToInt32(dtReserveMsg.Rows[0]["FloorID"]);cboUnitNumber.SelectedValue = Convert.ToInt32(dtReserveMsg.Rows[0]["UnitNumberID"]);txtClientName.Text = dtReserveMsg.Rows[0]["ClientName"].ToString().Trim();txtArea.Text = dtReserveMsg.Rows[0]["PresalseArea"].ToString().Trim();txtUnitPrice.Text = dtReserveMsg.Rows[0]["ReservationPrice"].ToString().Trim();txtTotalPrice.Text = dtReserveMsg.Rows[0]["BookingReservationPrice"].ToString().Trim();txtSortNumber.Text = dtReserveMsg.Rows[0]["RoomNumeral"].ToString().Trim();dtpDueDate.Value = Convert.ToDateTime(dtReserveMsg.Rows[0]["BookingDate"]);cboHomeBuyersConsultant.SelectedValue = Convert.ToInt32(dtReserveMsg.Rows[0]["HomeBuyerConsultantID"]);intCustomID = Convert.ToInt32(dtReserveMsg.Rows[0]["ClientID"]);intOldRoomID = Convert.ToInt32(dtReserveMsg.Rows[0]["UnitNumberID"]); }private void cboFloorNumber1_SelectionChangeCommitted(object sender, EventArgs e){DataTable dtRoom = myfrmMarketManagement_ReserveManagement_ChangeReserveClient.ChangeReserve_Load_SelectNewRoom((int)cboFloorNumber1.SelectedValue).Tables[0];PublicMethod.SettingComboBox(cboUnitNumber1, dtRoom, "RoomResourcesID", "Number", false);}private void cboFloorNumber_SelectionChangeCommitted(object sender, EventArgs e){DataTable dtOldRoom = myfrmMarketManagement_ReserveManagement_ChangeReserveClient.ChangeReserve_Load_SelectOldRoom((int)cboFloorNumber.SelectedValue).Tables[0];PublicMethod.SettingComboBox(cboUnitNumber, dtOldRoom, "RoomResourcesID", "Number", false);}private void btnSaveAndInsert_Click(object sender, EventArgs e)//保存新增{if (intCustomID == 0){MessageBox.Show("请添加客户后继续!!!");return;}int intBuildingAMovieTheatherID = (int)cboFloorNumber1.SelectedValue;int intUnitNumberID = (int)cboUnitNumber1.SelectedValue;string strRoomNumeral = txtRoomNumeral.Text.ToString();decimal decPresalseArea = Convert.ToDecimal(txtPresaleArea.Text.ToString());decimal decReservationPrice = Convert.ToDecimal(txtDuetotheunitprice.Text.ToString());decimal decBookingReservationPrice = Convert.ToDecimal(txtDuetothetotalprice.Text.ToString());decimal decAccountsReceivableBookingGoid = Convert.ToDecimal(txtDuetothetotalprice1.Text.ToString());DateTime dtmBookingDate = dtpPrediteDate1.Value;DateTime dtmValidDate = dtpEffectivedate.Value;string strBriefNote = txtBriefNote.Text.ToString().Trim();DataTable dt = myfrmMarketManagement_ReserveManagement_ChangeReserveClient.btnSaveAndInsert_Click_Insert(intCustomID, intBuildingAMovieTheatherID, intUnitNumberID, strRoomNumeral, decPresalseArea, decReservationPrice, decBookingReservationPrice, decAccountsReceivableBookingGoid, dtmBookingDate, dtmValidDate, strBriefNote).Tables[0]; ;if (dt.Rows.Count > 0)//如果新增成功{int intNewReserveRoomID =Convert.ToInt32( dt.Rows[0][0]);int intChangeReasonID = (int)cboChangeReason.SelectedValue;DateTime dtmOperatingTime = DateTime.Now;int intOperatingPerson = 1;int intOperatingType = 148;if (intOldRoomID != intUnitNumberID){myfrmMarketManagement_ReserveManagement_ChangeReserveClient.btnSaveAndInsert_Click_UpdateOldRoomStatus(intOldRoomID);myfrmMarketManagement_ReserveManagement_ChangeReserveClient.btnSaveAndInsert_Click_UpdateOldMsg(intNewReserveRoomID, intChangeReasonID, intReserveUnitID);PublicMethod.Pub_InsertSalesOfServiceFloowDetail("预定单元换定", intOldRoomID, 0, 0, 0, 0, 0, dtmOperatingTime, intOperatingPerson, intOperatingType);//添加操作记录}myfrmMarketManagement_ReserveManagement_ChangeReserveClient.btnSaveAndInsert_Click_UpdateRoomStatus(intUnitNumberID);PublicMethod.Pub_InsertClientEventRecord(intCustomID, dtmOperatingTime, "换定预定单元", "更换预定单元房源");PublicMethod.Pub_InsertSalesOfServiceFloowDetail("预定单元换定", intUnitNumberID, 0, 0, 0, 0, 0, dtmOperatingTime, intOperatingPerson, intOperatingType);//添加操作记录MessageBox.Show("换定预定成功!!!");this.Close();}}private void cboUnitNumber1_SelectionChangeCommitted(object sender, EventArgs e){int intRoomID = (int)cboUnitNumber.SelectedValue;txtPresaleArea.Text = myfrmMarketManagement_ReserveManagement_ChangeReserveClient.cboUnitNumber_SelectionChangeCommitted_SelectPrivateArea(intRoomID).Tables[0].Rows[0]["PricateArea"].ToString();}private void btnReturn_Click(object sender, EventArgs e){this.Close();}private void btnSaveAndReturn_Click(object sender, EventArgs e)//返回事件{btnSaveAndInsert_Click(null,null);}}
4.转购预定信息
从界面上可以看到我们这里用到的控件有
控件名称 |
说明 |
标注(Label) |
控件可以在工具箱直接拖动至窗体,拖至窗体后右击属性可以修改控件的样式和各种属性,还可以编辑事件。 |
下拉框(ComboBox) |
|
文本(TextBox) |
|
按钮(Button) |
|
日期控件(DateTimePicker) |
|
分组容器(GroupBox) |
|
图片列表(ImageList) |
|
表格(DataGridView) |
功能实现:
第一步:数据库
1、表与关系
表1: 房间资源表(dbo.SYS_RoomResource)
Primary Key(主键): RoomResourcesID
非主键ID值均是外键
列名 |
数据类型 |
默认值 |
Nulls? |
说明 |
RoomResourcesID |
int - Identity |
No |
房间资源ID |
|
FloorID |
int |
Yes |
楼栋信息表,楼栋ID |
|
TheCodeModelID |
int |
Yes |
属性明细表,代码模式ID |
|
Number |
nchar (10) |
Yes |
编号 |
|
UnitNumberID |
int |
Yes |
单元表,单元ID |
|
FloorStotey |
nchar (10) |
Yes |
楼层 |
|
RoomCategoryID |
int |
Yes |
属性明细表,房间类别ID |
|
TowardID |
int |
Yes |
属性明细表,朝向ID |
|
DoorModelID |
int |
Yes |
属性明细表,户型ID |
|
RoomTypeID |
int |
Yes |
属性明细表,房间类型ID |
|
RoomLandScapeID |
int |
Yes |
属性明细表,房间景观ID |
|
RoomSpecialID |
int |
Yes |
属性明细表,房间特殊ID |
|
ConstructionArea |
decimal (18, 2) |
Yes |
建筑面积 |
|
PricateArea |
decimal (18, 2) |
Yes |
私有面积 |
|
PublicArea |
decimal (18, 2) |
Yes |
公摊面积 |
|
Usage |
decimal (18, 2) |
Yes |
使用率 |
|
TheUnitPrice |
decimal (18, 2) |
Yes |
标价单价 |
|
BidPrice |
decimal (18, 2) |
Yes |
标价总价 |
|
NumberOfPrice |
nchar (10) |
Yes |
价格次数 |
|
SalesStatusID |
int |
((102)) |
Yes |
属性明细表,销售状态ID |
BriefNote |
nchar (30) |
Yes |
简要备注 |
|
SchematicDiagram |
image |
Yes |
示意图 |
|
Chart |
image |
Yes |
效果图 |
表2: 楼栋信息表(dbo.SYS_FloorInformation)
Primary Key(主键): FloorID
非主键ID值均是外键
(这里因为在这个表里边没有设置有默认值,所以没有默认值的那一列)
列名 |
数据类型 |
Nulls? |
说明 |
FloorID |
int - Identity |
No |
楼栋ID |
ProjectID |
int |
Yes |
项目信息表,项目ID |
FloorStructureID |
int |
Yes |
属性明细表,楼栋结构ID |
OpenBatchID |
int |
Yes |
属性明细表,开盘批次ID |
LaunchSituationID |
int |
Yes |
属性明细表,推出情况ID |
OpeningSituationID |
int |
Yes |
属性明细表,开盘情况ID |
FloorLevelID |
int |
Yes |
楼栋级别ID |
SortNumber |
nchar (10) |
Yes |
序号 |
FloorName |
nchar (20) |
Yes |
楼栋名称 |
PropertyRightFloorName |
nchar (20) |
Yes |
产权楼栋名称 |
FloorStorey |
nchar (10) |
Yes |
楼栋层数 |
LaunchDate |
datetime |
Yes |
推出日期 |
DoMortgageDate |
datetime |
Yes |
具备办按揭日期 |
CapsDate |
datetime |
Yes |
封顶日期 |
AccumulationFundDate |
datetime |
Yes |
具备办公积金日期 |
ExpectedPayDate |
datetime |
Yes |
预计交房日期 |
PropertyRightDate |
datetime |
Yes |
具备办产权日期 |
MakingRoomDate |
datetime |
Yes |
交房日期 |
表3: 客户信息 (dbo.PW_ClientInformation)
Primary Key(主键): ClientID
非主键ID值均是外键
列名 |
数据类型 |
默认值 |
Nulls? |
说明 |
ClientID |
int - Identity |
No |
客户ID |
|
ProjectID |
int |
Yes |
项目信息表,项目ID |
|
ClientNumber |
nchar (10) |
Yes |
客户编号 |
|
ClientName |
nchar (10) |
Yes |
客户名称 |
|
EarlyVisitIntention |
nchar (10) |
Yes |
初访意向 |
|
Gender |
nchar (10) |
Yes |
性别 |
|
MaritalStatus |
nchar (10) |
Yes |
婚否 |
|
ClientRegistrationWayID |
int |
Yes |
属性明细表,客户登记方式ID |
|
RelationPhone |
nchar (15) |
Yes |
联系电话 |
|
ElectronMail |
nchar (30) |
Yes |
电子邮箱 |
|
HomeBuyerConsultantID |
int |
Yes |
员工表,置业顾问ID |
|
DateOfVisit |
datetime |
Yes |
来访日期 |
|
CommunicationAddress |
nchar (50) |
Yes |
通讯地址 |
|
Postcode |
nchar (10) |
Yes |
邮编 |
|
IDentityCard |
nchar (30) |
Yes |
身份证号 |
|
BirthDay |
date |
Yes |
出生日期 |
|
Age |
nchar (20) |
Yes |
年龄 |
|
Professional |
nchar (20) |
Yes |
职业 |
|
NowLivingArea |
nchar (20) |
Yes |
现居住区域 |
|
LearnTheWayToTheCase |
nchar (20) |
Yes |
获取本案途径 |
|
VisitConstitute |
nchar (20) |
Yes |
来客构成 |
|
Traffic |
nchar (20) |
Yes |
交通 |
|
RealEstateSituation |
nchar (20) |
Yes |
置业状况 |
|
ResidentialMortgageLoans |
nchar (20) |
Yes |
住宅按揭贷款 |
|
HomesBuyersPurpose |
nchar (20) |
Yes |
置业目的 |
|
PlanTorealEstatePrice |
nchar (20) |
Yes |
计划置业价格 |
|
DemandArea |
nchar (20) |
Yes |
需求面积 |
|
PaymentWay |
nchar (20) |
Yes |
付款方式ID |
|
BuyingConsideration |
nchar (20) |
Yes |
买房考虑因素 |
|
IncalidOr |
bit |
((0)) |
Yes |
作废否 |
表4: 预定表 (dbo.PW_ReserveUnit)
Primary Key(主键): ReserveUnitID
非主键ID值均是外键
列名 |
数据类型 |
默认值 |
Nulls? |
说明 |
ReserveUnitID |
int - Identity |
No |
预订单元ID |
|
ClientID |
int |
Yes |
客户表,客户ID |
|
FloorID |
int |
Yes |
楼栋信息表,楼栋ID |
|
UnitNumberID |
int |
Yes |
单元表,单元ID |
|
RoomNumeral |
nchar (10) |
Yes |
房间排号 |
|
PresalseArea |
nchar (10) |
Yes |
预售面积 |
|
ReservationPrice |
money |
Yes |
预收单价 |
|
BookingReservationPrice |
money |
Yes |
预定总价 |
|
AccountsReceivableBookingGoid |
money |
Yes |
应收预约金 |
|
BookingDate |
datetime |
Yes |
预定日期 |
|
ValidDate |
datetime |
Yes |
有效日期 |
|
BriefNote |
nchar (20) |
Yes |
简要备注 |
|
AuditDate |
date |
Yes |
审核日期 |
|
NewReserveUnitID |
int |
Yes |
预定表,新预定ID |
|
ChangeReason |
int |
Yes |
属性明细表,变更原因ID |
|
IncalidOr |
bit |
((0)) |
Yes |
作废否 |
表5: 员工表 (dbo. SYS_Staff)
Primary Key(主键): StaffID
非主键ID值均是外键
列名 |
数据类型 |
Nulls? |
说明 |
StaffID |
int - Identity |
No |
员工ID |
StaffNumber |
nchar (10) |
Yes |
员工编号 |
StaffName |
nchar (10) |
Yes |
员工姓名 |
DepartMentID |
int |
Yes |
所属部门 |
GenderID |
int |
Yes |
属性明细表,性别ID |
Age |
int |
Yes |
年龄 |
EducationBackgroundID |
int |
Yes |
属性明细表,学历ID |
MarryWhether |
bit |
Yes |
婚否 |
Position |
nchar (10) |
Yes |
职位 |
ContactPhoneNumber |
nchar (15) |
Yes |
联系电话 |
ContactAddress |
nchar (20) |
Yes |
联系地址 |
Notes |
nchar (100) |
Yes |
备注 |
StaffImage |
image |
Yes |
员工照片 |
表6: 认购表 (dbo. PW_SubscribeUnit)
Primary Key(主键): SubscribeUnitID
非主键ID值均是外键
列名 |
数据类型 |
默认值 |
Nulls? |
说明 |
SubscribeUnitID |
int - Identity |
No |
认购单元ID |
|
SalesChangeID |
int |
Yes |
销售便更表,销售变更ID |
|
SubscriptioNumber |
nchar (20) |
Yes |
认购单编号 |
|
SubscribeToDate |
datetime |
Yes |
认购日期 |
|
AnticipatedDateSigned |
datetime |
Yes |
预计签约日期 |
|
ContractArea |
nchar (10) |
Yes |
合同面积 |
|
TypeOfPanymentID |
int |
Yes |
付款方式表,付款方式ID |
|
PaymentDetailsOfNameID |
int |
Yes |
付款方式明细表,付款名称细目ID |
|
SalesAreaOfWayID |
int |
Yes |
属性明细表,销售面积方式ID |
|
FsvorableDiscount |
decimal (18, 2) |
Yes |
优惠折扣 |
|
ClinchADealUnitPrice |
money |
Yes |
成交单价 |
|
ClinchADealThePrice |
money |
Yes |
成交总价 |
|
ClientID |
int |
Yes |
客户信息表,客户ID |
|
AgentID |
int |
Yes |
员工表,经办人ID |
|
BriefNote |
nchar (20) |
Yes |
简要备注 |
|
ReviewWhether |
bit |
((0)) |
Yes |
审核否 |
CancelWhether |
bit |
((0)) |
Yes |
作废否 |
ChangeOfAuditStatusID |
int |
Yes |
属性明细表,变更审核状态ID |
|
RoomResourcesID |
int |
Yes |
房间资源表,房源ID |
|
AfterUpdateID |
int |
Yes |
认购表,修改后的认购ID |
表7: 折扣优惠表 (dbo. SYS_DiscountOfPreferential)
Primary Key(主键): DiscountID
非主键ID值均是外键
列名 |
数据类型 |
默认值 |
Nulls? |
DiscountID |
int - Identity |
No |
|
ProjectID |
int |
Yes |
|
BuildingNumberIDGather |
nvarchar (4000) |
Yes |
|
UnitNumberIDGather |
nvarchar (4000) |
Yes |
|
DiscountName |
nchar (50) |
Yes |
|
SerialNumber |
nchar (20) |
Yes |
|
EffectiveDate |
datetime |
Yes |
|
ExpiryDate |
datetime |
Yes |
|
PreferentialTyoeID |
int |
Yes |
|
CaluculationID |
int |
Yes |
|
CaluculationTypeID |
int |
Yes |
|
Discount |
decimal (18, 2) |
Yes |
|
DiscountSum |
decimal (18, 2) |
Yes |
|
ASingleSetOfHighestDiscountAmount |
decimal (18, 2) |
Yes |
|
TotalDiscount |
decimal (18, 2) |
Yes |
|
UsingRangeID |
int |
Yes |
|
Privilege |
nchar (100) |
Yes |
|
WhetherenableManagerPermissions |
bit |
No |
|
CancelWhether |
bit |
((0)) |
Yes |
表8: 折扣优惠明细表 (dbo. SYS_DiscountOfPreferentialDetail)
Primary Key(主键): DiscountOfPreferentialDetailID
非主键ID值均是外键
列名 |
数据类型 |
默认值 |
Nulls? |
DiscountOfPreferentialDetailID |
int - Identity |
No |
|
DiscountID |
int |
Yes |
|
FloorID |
int |
Yes |
|
RoomResourceID |
int |
Yes |
|
RecordDate |
datetime |
Yes |
|
IncalidOr |
bit |
((0)) |
Yes |
2、具体的代码实现
第一步:数据库的存储过程
if @Type='ReserveToSubscribe_Load_BindingdgvCustomer'--查询客户信息
begin
SELECT ClientID, RTRIM(ClientName) AS ClientName, RTRIM(RelationPhone) AS RelationPhone, Gender AS 性别, CommunicationAddress, ClientNumber, IDentityCard, Postcode, HomeBuyerConsultantID
FROM PW_ClientInformation
where PW_ClientInformation.IncalidOr=0
endif @Type='ReserveToSubscribe_Load_BindingcboFloorNumber'--查询楼栋信息
begin
SELECT FloorID, rtrim(FloorName) as FloorName
FROM SYS_FloorInformation
where SYS_FloorInformation.ProjectID=@ProjectID
endif @Type='ReserveToSubscribe_Load_BindingcboUnitNumber'--查询房源信息
begin
SELECT RoomResourcesID, rtrim(Number) as Number
FROM SYS_RoomResources
where SYS_RoomResources.FloorID=@FloorID
endif @Type='ReserveToSubscribe_Load_SelectedAllUnitNumber'----查询房源信息
begin
SELECT RoomResourcesID, rtrim(Number) as Number
FROM SYS_RoomResources
where SYS_RoomResources.FloorID=@FloorID and SYS_RoomResources.SalesStatusID=99
endif @Type='ReserveToSubscribe_Load_BindingcboPaymentWay'--查询付款方式
begin
SELECT PayTypeID, rtrim(PayTypementName) as PayTypementName
FROM SYS_TypeOfPayment
endif @Type='ReserveToSubscribe_Load_BindingcboPaymentDetailsOfName'--查询付款方式明细
begin
SELECT AttributeDetailsID, rtrim(AuttributeDetailsName) as AuttributeDetailsName
FROM SYS_AttributeDetails
where SYS_AttributeDetails.AuttributeSetID=31
endif @Type='ReserveToSubscribe_Load_BindingcboDiscount'--查询折扣
begin
SELECT DiscountDetailID, rtrim(Discount) as Discount
FROM SYS_DiscountDetail
endif @Type='ReserveToSubscribe_Load_BindingcboHomeBuyersConsultant'--查询置业顾问
begin
SELECT StaffID, rtrim(StaffName) as StaffName
FROM SYS_Staff
endif @Type='cboUnitNumber_SelectionChangeCommitted'--条件查询预订信息
begin
SELECT rtrim(SYS_RoomResources.ConstructionArea) as ConstructionArea, rtrim(SYS_RoomResources.PricateArea) as PricateArea, rtrim(SYS_RoomResources.PublicArea) as PublicArea, rtrim(SYS_RoomResources.TheUnitPrice) as TheUnitPrice, rtrim(SYS_RoomResources.BidPrice) as BidPrice, PW_ReserveUnit.BookingDate, PW_ReserveUnit.ValidDate, rtrim(PW_ReserveUnit.PresalseArea) as PresalseArea, rtrim(PW_ReserveUnit.ReservationPrice) as ReservationPrice, rtrim(PW_ReserveUnit.BookingReservationPrice) as BookingReservationPrice
FROM SYS_RoomResources LEFT OUTER JOINPW_ReserveUnit ON SYS_RoomResources.RoomResourcesID = PW_ReserveUnit.UnitNumberID
where SYS_RoomResources.RoomResourcesID=@RoomResourcesID
endif @Type='cboUnitNumber_SelectionChangeCommitted_SelectPreferential'--查询优惠折扣明细
begin
SELECT SYS_DiscountOfPreferentialDetail.DiscountID, SYS_DiscountOfPreferentialDetail.FloorID, rtrim(SYS_DiscountOfPreferential.DiscountName) as DiscountName, rtrim(SYS_AttributeDetails.AuttributeDetailsName) AS PreferentialType, rtrim(SYS_AttributeDetails_1.AuttributeDetailsName) AS Caluculation, rtrim(SYS_AttributeDetails_2.AuttributeDetailsName) AS CaluculationType, rtrim(SYS_DiscountOfPreferential.Discount) as Discount, rtrim(SYS_DiscountOfPreferential.DiscountSum) as DiscountSum, rtrim(SYS_DiscountOfPreferential.Privilege) as Privilege, SYS_DiscountOfPreferentialDetail.RoomResourceID
FROM SYS_AttributeDetails AS SYS_AttributeDetails_1 INNER JOINSYS_AttributeDetails INNER JOINSYS_DiscountOfPreferential ON SYS_AttributeDetails.AttributeDetailsID = SYS_DiscountOfPreferential.PreferentialTyoeID ON SYS_AttributeDetails_1.AttributeDetailsID = SYS_DiscountOfPreferential.CaluculationID INNER JOINSYS_AttributeDetails AS SYS_AttributeDetails_2 ON SYS_DiscountOfPreferential.CaluculationTypeID = SYS_AttributeDetails_2.AttributeDetailsID LEFT OUTER JOINSYS_DiscountOfPreferentialDetail ON SYS_DiscountOfPreferential.DiscountID = SYS_DiscountOfPreferentialDetail.DiscountIDwhere SYS_DiscountOfPreferentialDetail.RoomResourceID = @RoomResourceID
group by SYS_DiscountOfPreferentialDetail.DiscountID, SYS_DiscountOfPreferentialDetail.FloorID, SYS_DiscountOfPreferential.DiscountName, SYS_AttributeDetails.AuttributeDetailsName , SYS_AttributeDetails_1.AuttributeDetailsName , SYS_AttributeDetails_2.AuttributeDetailsName , SYS_DiscountOfPreferential.Discount, SYS_DiscountOfPreferential.DiscountSum, SYS_DiscountOfPreferential.Privilege, SYS_DiscountOfPreferentialDetail.RoomResourceIDendif @Type='btnSaveAndInsert_Click_Insert'--新增预定
begin
INSERT INTO PW_SubscribeUnit(RoomResourcesID, SalesChangeID, SubscriptioNumber, SubscribeToDate, AnticipatedDateSigned, ContractArea, TypeOfPanymentID, PaymentDetailsOfNameID, SalesAreaOfWayID, FsvorableDiscount, ClinchADealUnitPrice, ClinchADealThePrice, ClientID, AgentID, BriefNote)
VALUES (@RoomResourcesID, @SalesChangeID, @SubscriptioNumber, @SubscribeToDate, @AnticipatedDateSigned, @ContractArea, @TypeOfPanymentID, @PaymentDetailsOfNameID, @SalesAreaOfWayID, @FsvorableDiscount, @ClinchADealUnitPrice, @ClinchADealThePrice, @ClientID, @AgentID, @BriefNote)
endif @Type='btnSaveAndInsert_Click_UpdateRoomStatus'--修改预定,修改房源销售状态
begin
UPDATE SYS_RoomResources
SET SalesStatusID =97
where SYS_RoomResources.RoomResourcesID=@RoomResourcesIDUPDATE PW_ReserveUnit
SET IncalidOr =1
where PW_ReserveUnit.UnitNumberID=@RoomResourcesID
endif @Type='ReserveToSubscribe_Load_SelectReserveMsg'--查询预定信息
begin
SELECT PW_ReserveUnit.ClientID, PW_ReserveUnit.FloorID, rtrim(PW_ClientInformation.ClientName) as ClientName, rtrim(PW_ClientInformation.RelationPhone) as RelationPhone, rtrim(PW_ClientInformation.ClientNumber) as ClientNumber, rtrim(PW_ClientInformation.IDentityCard) as IDentityCard, rtrim(PW_ClientInformation.CommunicationAddress) as CommunicationAddress, rtrim(PW_ClientInformation.Postcode) as Postcode, PW_ReserveUnit.UnitNumberID, rtrim(SYS_RoomResources.ConstructionArea) as ConstructionArea, rtrim(SYS_RoomResources.PricateArea) as PricateArea, rtrim( SYS_RoomResources.PublicArea) as PublicArea, rtrim(SYS_RoomResources.TheUnitPrice) as TheUnitPrice, rtrim(SYS_RoomResources.BidPrice) as BidPrice, rtrim(SYS_RoomResources.NumberOfPrice) as NumberOfPrice, PW_ClientInformation.HomeBuyerConsultantID, rtrim(SYS_Staff.StaffName) as StaffName, rtrim(PW_ReserveUnit.PresalseArea) as PresalseArea, PW_ReserveUnit.BookingDate, PW_ReserveUnit.ValidDate, SYS_RoomResources.SalesStatusID, PW_ReserveUnit.ReserveUnitID
FROM PW_ReserveUnit INNER JOINPW_ClientInformation ON PW_ReserveUnit.ClientID = PW_ClientInformation.ClientID INNER JOINSYS_FloorInformation ON PW_ReserveUnit.FloorID = SYS_FloorInformation.FloorID INNER JOINSYS_Staff ON PW_ClientInformation.HomeBuyerConsultantID = SYS_Staff.StaffID INNER JOINSYS_RoomResources ON PW_ReserveUnit.UnitNumberID = SYS_RoomResources.RoomResourcesIDwhere PW_ReserveUnit.ReserveUnitID=@ReserveUnitID
endif @Type='SelectSubscribeMaximunNumber'--查询最大认购数
begin
SELECT rtrim(Subscribe) as Subscribe
FROM EverydayMaximumNumber
endif @Type='btnSaveAndInsert_Click_UpdateReserve'--修改预定
begin
UPDATE PW_ReserveUnit
SET IncalidOr = 1
where PW_ReserveUnit.ReserveUnitID=@ReserveUnitID
end
第二步:逻辑层(BLL)相关代码
[ServiceContract]public class frmMarketManagement_ReserveManagement_ReserveToSubscribe{DALPublic.DALPublic myDALPublic = new DALPublic.DALPublic();[OperationContract]#region 绑定dgv客户public DataSet ReserveToSubscribe_Load_BindingdgvCustomer(){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),};SQLCMDpas[0].Value = "ReserveToSubscribe_Load_BindingdgvCustomer";DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 条件绑定cbo楼栋public DataSet ReserveToSubscribe_Load_BindingcboFloorNumber(int intProjectID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@ProjectID", SqlDbType.Int),};SQLCMDpas[0].Value = "ReserveToSubscribe_Load_BindingcboFloorNumber";SQLCMDpas[1].Value = intProjectID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 条件绑定cbo单元public DataSet ReserveToSubscribe_Load_BindingcboUnitNumber(int intFloorID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@FloorID", SqlDbType.Int),};SQLCMDpas[0].Value = "ReserveToSubscribe_Load_BindingcboUnitNumber";SQLCMDpas[1].Value = intFloorID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 查询某一楼栋里边的预定房间public DataSet ReserveToSubscribe_Load_SelectedAllUnitNumber(int intFloorID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@FloorID", SqlDbType.Int),};SQLCMDpas[0].Value = "ReserveToSubscribe_Load_SelectedAllUnitNumber";SQLCMDpas[1].Value = intFloorID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 绑定优惠折扣列表public DataSet cboUnitNumber_SelectionChangeCommitted_SelectPreferential(int intRoomResourcesID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@RoomResourceID", SqlDbType.Int),};SQLCMDpas[0].Value = "cboUnitNumber_SelectionChangeCommitted_SelectPreferential";SQLCMDpas[1].Value = intRoomResourcesID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 条件绑定cbo置业顾问public DataSet ReserveToSubscribe_Load_BindingcboHomeBuyersConsultant(){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),};SQLCMDpas[0].Value = "ReserveToSubscribe_Load_BindingcboHomeBuyersConsultant";DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 条件绑定cbo折扣public DataSet ReserveToSubscribe_Load_BindingcboDiscount(){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),};SQLCMDpas[0].Value = "ReserveToSubscribe_Load_BindingcboDiscount";DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 绑定付款方式public DataSet ReserveToSubscribe_Load_BindingcboPaymentWay(){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),};SQLCMDpas[0].Value = "ReserveToSubscribe_Load_BindingcboPaymentWay";DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 绑定付款方式明细public DataSet ReserveToSubscribe_Load_BindingcboPaymentDetailsOfName(){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),};SQLCMDpas[0].Value = "ReserveToSubscribe_Load_BindingcboPaymentDetailsOfName";DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 绑定房间信息public DataSet cboUnitNumber_SelectionChangeCommitted(int intRoomResourcesID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@RoomResourcesID", SqlDbType.Int),};SQLCMDpas[0].Value = "cboUnitNumber_SelectionChangeCommitted";SQLCMDpas[1].Value = intRoomResourcesID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 添加认购public int btnSaveAndInsert_Click_Insert(int intRoomResourcesID, int intSalesChangeID, string strSubscriptioNumber, DateTime dtmSubscribeToDate,DateTime dtmAnticipatedDateSigned, string strContractArea, int intTypeOfPanymentID, int intPaymentDetailsOfNameID, int intSalesAreaOfWayID,decimal decFsvorableDiscount, decimal decClinchADealUnitPrice, decimal decClinchADealThePrice, int intClientID, int intAgentID, string strBriefNote){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@RoomResourcesID", SqlDbType.Int),new SqlParameter("@SalesChangeID", SqlDbType.Int),new SqlParameter("@SubscriptioNumber", SqlDbType.Char),new SqlParameter("@SubscribeToDate", SqlDbType.DateTime),new SqlParameter("@AnticipatedDateSigned", SqlDbType.DateTime),new SqlParameter("@ContractArea", SqlDbType.Char),new SqlParameter("@TypeOfPanymentID", SqlDbType.Int),new SqlParameter("@PaymentDetailsOfNameID", SqlDbType.Int),new SqlParameter("@SalesAreaOfWayID", SqlDbType.Int),new SqlParameter("@FsvorableDiscount", SqlDbType.Decimal),new SqlParameter("@ClinchADealUnitPrice", SqlDbType.Decimal),new SqlParameter("@ClinchADealThePrice", SqlDbType.Decimal),new SqlParameter("@ClientID", SqlDbType.Int),new SqlParameter("@AgentID", SqlDbType.Int),new SqlParameter("@BriefNote", SqlDbType.Char),};SQLCMDpas[0].Value = "btnSaveAndInsert_Click_Insert";SQLCMDpas[1].Value = intRoomResourcesID;SQLCMDpas[2].Value = intSalesChangeID;SQLCMDpas[3].Value = strSubscriptioNumber;SQLCMDpas[4].Value = dtmSubscribeToDate;SQLCMDpas[5].Value = dtmAnticipatedDateSigned;SQLCMDpas[6].Value = strContractArea;SQLCMDpas[7].Value = intTypeOfPanymentID;SQLCMDpas[8].Value = intPaymentDetailsOfNameID;SQLCMDpas[9].Value = intSalesAreaOfWayID;SQLCMDpas[10].Value = decFsvorableDiscount;SQLCMDpas[11].Value = decClinchADealUnitPrice;SQLCMDpas[12].Value = decClinchADealThePrice;SQLCMDpas[13].Value = intClientID;SQLCMDpas[14].Value = intAgentID;SQLCMDpas[15].Value = strBriefNote;return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);}#endregion[OperationContract]#region 修改房间状态public int btnSaveAndInsert_Click_UpdateRoomStatus(int intRoomResourcesID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@RoomResourcesID", SqlDbType.Int),};SQLCMDpas[0].Value = "btnSaveAndInsert_Click_UpdateRoomStatus";SQLCMDpas[1].Value = intRoomResourcesID;return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);}#endregion[OperationContract]#region 条件绑定预定信息public DataSet ReserveToSubscribe_Load_SelectReserveMsg(int intReserveUnitID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@ReserveUnitID", SqlDbType.Int),};SQLCMDpas[0].Value = "ReserveToSubscribe_Load_SelectReserveMsg";SQLCMDpas[1].Value = intReserveUnitID;DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 查询当日最大认购数public DataSet SelectSubscribeMaximunNumber(){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),};SQLCMDpas[0].Value = "SelectSubscribeMaximunNumber";DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 修改原预定数据的有效否public int btnSaveAndInsert_Click_UpdateReserve(int intReserveUnitID){SqlParameter[] SQLCMDpas = { new SqlParameter("@Type", SqlDbType.Char),new SqlParameter("@ReserveUnitID", SqlDbType.Int),};SQLCMDpas[0].Value = "btnSaveAndInsert_Click_UpdateReserve";SQLCMDpas[1].Value = intReserveUnitID;return myDALPublic.DAL_OPTableDB_Par("frmMarketManagement_ReserveManagement_ReserveToSubscribe", SQLCMDpas);}#endregion}
第三步:界面层(UIL)相关代码及说明
public partial class frmMarketManagement_ReserveManagement_ReserveToSubscribe : Form{frmMarketManagement_ReserveManagement Frm;public frmMarketManagement_ReserveManagement_ReserveToSubscribe(frmMarketManagement_ReserveManagement frm){Frm = frm;InitializeComponent();}BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ReserveManagement_ReserveToSubscribe.frmMarketManagement_ReserveManagement_ReserveToSubscribeClient myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient = new BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_ReserveManagement_ReserveToSubscribe.frmMarketManagement_ReserveManagement_ReserveToSubscribeClient();DataTable dtCustom = new DataTable();int intReserveID = 0;private void frmMarketManagement_ReserveManagement_ReserveToSubscribe_Load(object sender, EventArgs e){dtCustom = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.ReserveToSubscribe_Load_BindingdgvCustomer().Tables[0];dgvCustomer.DataSource = dtCustom;int intProjectID = Frm.intProjectID;cboFloorNumber.DataSource = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.ReserveToSubscribe_Load_BindingcboFloorNumber(intProjectID).Tables[0];cboFloorNumber.DisplayMember = "FloorName";cboFloorNumber.ValueMember = "FloorID";cboFloorNumber.SelectedValue = Frm.intfloorID;cboHomeBuyersConsultant.DataSource = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.ReserveToSubscribe_Load_BindingcboHomeBuyersConsultant().Tables[0];cboHomeBuyersConsultant.DisplayMember = "StaffName";cboHomeBuyersConsultant.ValueMember = "StaffID";cboAgent.DataSource = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.ReserveToSubscribe_Load_BindingcboHomeBuyersConsultant().Tables[0];cboAgent.DisplayMember = "StaffName";cboAgent.ValueMember = "StaffID";cboPaymentWay.DataSource = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.ReserveToSubscribe_Load_BindingcboPaymentWay().Tables[0];cboPaymentWay.DisplayMember = "PayTypementName";cboPaymentWay.ValueMember = "PayTypeID";cboPaymentDetailsOfName.DataSource = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.ReserveToSubscribe_Load_BindingcboPaymentDetailsOfName().Tables[0];cboPaymentDetailsOfName.DisplayMember = "AuttributeDetailsName";cboPaymentDetailsOfName.ValueMember = "AttributeDetailsID";cboUnitNumber.DataSource = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.ReserveToSubscribe_Load_SelectedAllUnitNumber(Frm.intfloorID).Tables[0];cboUnitNumber.DisplayMember = "Number";cboUnitNumber.ValueMember = "RoomResourcesID";cboUnitNumber.SelectedValue = Frm.intRoomResourceID;string strSubscribeMaximumNumber = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.SelectSubscribeMaximunNumber().Tables[0].Rows[0][0].ToString();BingdigPreferentialList(Frm.intRoomResourceID);switch (strSubscribeMaximumNumber.Length){case 1:strSubscribeMaximumNumber = "000" + strSubscribeMaximumNumber;break;case 2:strSubscribeMaximumNumber = "00" + strSubscribeMaximumNumber;break;case 3:strSubscribeMaximumNumber = "0" + strSubscribeMaximumNumber;break;default:break;}txtSubscriptionNumber.Text = DateTime.Now.Year.ToString() + (DateTime.Now.Month > 10 ? DateTime.Now.Month.ToString() : "0" + DateTime.Now.Month) + (DateTime.Now.Day > 10 ? DateTime.Now.Day.ToString() : "0" + DateTime.Now.Day) +strSubscribeMaximumNumber;cboFloorNumber.SelectedIndex = 0;//cboFloorNumber_SelectionChangeCommitted(null,null);intReserveID = Frm.intReserveUnitID;DataTable dtReserveMsg = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.ReserveToSubscribe_Load_SelectReserveMsg(intReserveID).Tables[0];BindingDate(dtReserveMsg);intCustomID = Frm.intCustomerID;intRoomID = Frm.intRoomResourceID;}void BingdigPreferentialList(int intRoomResourceID){DataTable dtPreferential = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.cboUnitNumber_SelectionChangeCommitted_SelectPreferential(intRoomResourceID).Tables[0];dgvDiscountList.DataSource = dtPreferential;}void BindingDate(DataTable dtMsg){txtClientName.Text = dtMsg.Rows[0]["ClientName"].ToString().Trim();txtTelephoneNumber.Text = dtMsg.Rows[0]["RelationPhone"].ToString().Trim();txtClientNumber.Text = dtMsg.Rows[0]["ClientNumber"].ToString().Trim();txtIDNumber.Text = dtMsg.Rows[0]["IDentityCard"].ToString().Trim();txtCorrespondenceAddress.Text = dtMsg.Rows[0]["CommunicationAddress"].ToString().Trim();txtZipCode.Text = dtMsg.Rows[0]["Postcode"].ToString().Trim();cboFloorNumber.SelectedValue = (int)dtMsg.Rows[0]["FloorID"];txtBuildingPresaleArea.Text = dtMsg.Rows[0]["ConstructionArea"].ToString().Trim();txtOpenToBookingAPrivateArea.Text = dtMsg.Rows[0]["PricateArea"].ToString().Trim();txtBookingpublicbetaarea.Text = (Convert.ToDecimal(dtMsg.Rows[0]["ConstructionArea"].ToString().Trim()) - Convert.ToDecimal(dtMsg.Rows[0]["PricateArea"].ToString().Trim())).ToString();txtApprovedconstructionareaof.Text = dtMsg.Rows[0]["PresalseArea"].ToString().Trim();txtOpentobookingaTatolPrice.Text = dtMsg.Rows[0]["TheUnitPrice"].ToString().Trim();txtBidPrice.Text = dtMsg.Rows[0]["BidPrice"].ToString().Trim();txtNumberOfPrice.Text = dtMsg.Rows[0]["NumberOfPrice"].ToString().Trim();}private void btnSelect_Click(object sender, EventArgs e){if (txtNameAndPhone.Text != ""){string strCondition = "ClientName like '%" + txtNameAndPhone.Text.ToString().Trim() + "%'" + " Or " + " RelationPhone like '%" + txtNameAndPhone.Text.ToString().Trim() + "%'";DataView dv = new DataView(dtCustom);dv.RowFilter = strCondition;DataTable dt = dv.ToTable();dgvCustomer.DataSource = dt;}elsedgvCustomer.DataSource = dtCustom;dgvCustomer.Visible = true;}private void dgvCustomer_MouseLeave(object sender, EventArgs e){dgvCustomer.Visible = false;}int intCustomID = 0;private void dgvCustomer_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e){intCustomID = (int)dgvCustomer.CurrentRow.Cells["CustomerID"].Value;txtClientName.Text = dgvCustomer.CurrentRow.Cells["CustomName"].Value.ToString().Trim();txtTelephoneNumber.Text = dgvCustomer.CurrentRow.Cells["CustomerPhoneNumber"].Value.ToString().Trim();txtCorrespondenceAddress.Text = dgvCustomer.CurrentRow.Cells["通讯地址"].Value.ToString().Trim();txtClientNumber.Text = dgvCustomer.CurrentRow.Cells["客户编号"].Value.ToString().Trim();txtIDNumber.Text = dgvCustomer.CurrentRow.Cells["身份证号"].Value.ToString().Trim();txtZipCode.Text = dgvCustomer.CurrentRow.Cells["邮政编码"].Value.ToString().Trim();cboHomeBuyersConsultant.SelectedValue = Convert.ToInt32(dgvCustomer.CurrentRow.Cells["HomeBuyerConsultantID"].Value.ToString().Trim());dgvCustomer.Visible = false;}private void cboFloorNumber_SelectionChangeCommitted(object sender, EventArgs e){int intFloorID = (int)cboFloorNumber.SelectedValue;cboUnitNumber.DataSource = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.ReserveToSubscribe_Load_BindingcboUnitNumber(intFloorID).Tables[0];cboUnitNumber.DisplayMember = "Number";cboUnitNumber.ValueMember = "RoomResourcesID";}int intRoomID = 0;private void cboUnitNumber_SelectionChangeCommitted(object sender, EventArgs e){intRoomID = (int)cboUnitNumber.SelectedValue;DataTable dtRoomResource = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.cboUnitNumber_SelectionChangeCommitted(intRoomID).Tables[0];txtBuildingPresaleArea.Text = dtRoomResource.Rows[0]["ConstructionArea"].ToString().Trim();txtOpenToBookingAPrivateArea.Text = dtRoomResource.Rows[0]["PricateArea"].ToString().Trim();txtBookingpublicbetaarea.Text = dtRoomResource.Rows[0]["PublicArea"].ToString().Trim();txtApprovedconstructionareaof.Text = dtRoomResource.Rows[0]["PresalseArea"].ToString().Trim();txtOpentobookingaTatolPrice.Text = dtRoomResource.Rows[0]["ReservationPrice"].ToString().Trim();txtBidPrice.Text = dtRoomResource.Rows[0]["BidPrice"].ToString().Trim();txtNumberOfPrice.Text = dtRoomResource.Rows[0]["NumberOfPrice"].ToString().Trim();}private void btnSaveAndInsert_Click(object sender, EventArgs e){string strSubscriptioNumber = txtSubscriptionNumber.Text.ToString();DateTime dtmSubscribeToDate = dtpSubscriptionDate.Value;DateTime dtmAnticipatedDateSigned = dtpAnticipatedDateSigned.Value;string strContractArea = txtContractArea.Text.ToString();int intTypeOfPanymentID = (int)cboPaymentWay.SelectedValue;int intPaymentDetailsOfNameID = (int)cboPaymentDetailsOfName.SelectedValue;decimal decFsvorableDiscount = Convert.ToDecimal(txtDiscount.Text);decimal decClinchADealUnitPrice = 0;decimal decClinchADealThePrice = 0;try{decClinchADealUnitPrice = Convert.ToDecimal(txtClinchADealUnitPrice.Text);decClinchADealThePrice = Convert.ToDecimal(txtClinchADealThePrice.Text);}catch{MessageBox.Show("请完善所有的信息后继续!!!");return;}int intAgentID = (int)cboAgent.SelectedValue;string strBriefNote = txtBriefNote.Text.ToString();int myop = myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.btnSaveAndInsert_Click_Insert(intRoomID, 0, strSubscriptioNumber, dtmSubscribeToDate,dtmAnticipatedDateSigned, strContractArea, intTypeOfPanymentID, intPaymentDetailsOfNameID, intSalesAreaOfWayID,decFsvorableDiscount, decClinchADealUnitPrice, decClinchADealThePrice, intCustomID, intAgentID, strBriefNote);if (myop > 0){myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.btnSaveAndInsert_Click_UpdateRoomStatus(intRoomID);DateTime dtmOperatingTime = DateTime.Now;int intOperatingPerson = 1;int intOperatingType = 159;myfrmMarketManagement_ReserveManagement_ReserveToSubscribeClient.btnSaveAndInsert_Click_UpdateReserve(Frm.intReserveUnitID); //添加认购成功后,把原来预定的信息修改为作废PublicMethod.Pub_UpdateEverydayMaximumSubscribeNumber();PublicMethod.Pub_InsertClientEventRecord(intCustomID, dtmOperatingTime, "预订单元转购", "预定转认购");PublicMethod.Pub_InsertSalesOfServiceFloowDetail("预定单元转购", intRoomID, 0, 0, 0, 0, 0, dtmOperatingTime, intOperatingPerson, intOperatingType);//添加操作记录MessageBox.Show("新增认购成功!!!");Frm.MultSelect(Frm.intProjectID,Frm.intFloorID);this.Close();}}int intSalesAreaOfWayID = 0;private void radBuildingArea_CheckedChanged(object sender, EventArgs e) {intSalesAreaOfWayID = 137;}private void radUnitArea_CheckedChanged(object sender, EventArgs e){intSalesAreaOfWayID = 138;}private void radUnit_CheckedChanged(object sender, EventArgs e){intSalesAreaOfWayID = 139;}private void radOhterArea_CheckedChanged(object sender, EventArgs e){intSalesAreaOfWayID = 140;}private void pubPrice_KeyPress(object sender, KeyPressEventArgs e){PublicMethod.pubPriceOrRate_KeyPress(sender, e); }private void txtDiscount_KeyPress(object sender, KeyPressEventArgs e){PublicMethod.pubPriceOrRate_KeyPress(sender, e);}private void btnRenturn_Click(object sender, EventArgs e){this.Close();}}
新锐房地产销售管理系统(部分流程)技术解析(八) 销售管理_预定管理相关推荐
- 新锐房地产销售管理系统(部分流程)技术解析(二) 新建数据库和构建服务
1.建立数据库 1.1.新建数据库 第一步:登陆数据库 第二步:新建数据库 第三步:新建完数据库,就到了新建数据库所要用到的表 第四步:新建存储过程 2.搭建服务 2.1.首先要编辑好DAL 第一步: ...
- 新锐房地产销售管理系统(部分流程)技术解析(七) 销售管理_认筹管理
1.认筹管理主界面 具体视图如下: 从界面上可以看到我们这里用到的控件有 控件名称 说明 标注(Label) 控件可以在工具箱直接拖动至窗体,拖至窗体后右击属性可以修改控件的样式和各种属性,还可以编辑 ...
- 新锐房地产销售管理系统(部分流程)技术解析(十) 销售管理_销售优惠设置
1.销售优惠设置主界面 从界面上可以看到我们这里用到的控件有 控件名称 说明 标注(Label) 控件可以在工具箱直接拖动至窗体,拖至窗体后右击属性可以修改控件的样式和各种属性,还可以编辑事件. 选项 ...
- 新锐房地产销售管理系统(部分流程)技术解释(三)销售管理_房源查询
1.查询房源 房源查询这个模块,可以根据 所选择的项目和楼栋来把房源的信息查询出来,具体体现如下.右边显示的是这个房源的具体信息,销售信息是某一个房源的重要操作记录(例如预定.预留之类的记录).主界面 ...
- 新锐房地产销售管理系统 (部分流程)技术解析(一)用三层架构搭建项目
一.新建项目客户端(UIL) 第一步:打开Vs2010界面,点击左上角文件,点击新建,选择项目 第二步:点击Windows类型,选择Windows窗体应用程序,在名称中输入项目名称(解决方案名称),位 ...
- 房地产销售管理系统商业项目视频课程-赖国荣-专题视频课程
房地产销售管理系统商业项目视频课程-585人已学习 课程介绍 课程60讲左右,购买后,可以下载项目源代码及课程资料,本系统采用WEB架构开发,针对中大型房地产公司定制开发的CRM营销管 ...
- 视频教程-房地产销售管理系统商业项目视频课程-Java
房地产销售管理系统商业项目视频课程 19年软件开发经验,设计开发40多个大型软件,10年从事高等教育,主要为java系列课程,带你轻松进入java生涯. 赖国荣 ¥1299.00 立即订阅 扫码下载「 ...
- 【计算机毕业设计】289房地产销售管理系统
一.系统截图(需要演示视频可以私聊) 摘 要 社会和科技的不断进步带来更便利的生活,计算机技术也越来越平民化.二十一世纪是数据时代,各种信息经过统计分析都可以得到想要的结果,所以也可以更好的为人们工 ...
- 海马汽车经销商管理系统技术解析(三)应收管理
海马汽车经销商管理系统技术解析(三)应收管理 应收管理这个模块可以查看所有欠款的客户和每个客户的欠款明细信息,还可以新建欠账单和删除欠账单.可以通过客户姓名.发生日期等条件对欠账单进行筛选查询.还可以 ...
最新文章
- Docker构建Nginx+Tomcat动静分离架构
- 3分钟把区块链的技术与应用彻底讲清楚
- HDU 6064 RXD and numbers
- python绘制动态心形_python绘制动态爱心
- 开发一个自己的 CSS 框架(二) 1
- 均方根误差有没有单位_mse均方误差是否有单位
- 深度森林:常见Warning及解决方案
- 【零售知识】商品库存成本计算的几种方式
- 《东周列国志》第九十二回 赛举鼎秦武王绝胫 莽赴会楚怀王陷秦
- 谷歌广告联盟怎么收款?google AdSense 广告款收取流程!(转载)
- 【有奖倒计时】带你走进AI应用创新大赛十强背后的故事!
- 揭秘玛雅预言--根本没这回事
- 中国国产十大著名户外运动品牌全球最顶级碳纤维自行车品牌排行榜
- 入门UVM验证方法学
- Unity3D学习笔记(十二)预制
- win10 无法删除 注册表 蓝牙_编辑设置Win10删除蓝牙设备后无法重新添加的修复办法...
- linux系统换硬件要重装,换cpu要重装系统吗?电脑更换cpu需要重装系统吗
- Scrapy框架爬虫项目:京东商城笔记本电脑信息爬取
- Spring @Configuration和@Component的区别(enhancer的原因)
- 基于STC15W408AS蓝牙智能小车