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
end
if @Type='dgvProject_CellDoubleClick_BindtvwFloor'--查询楼栋信息
begin
SELECT FloorID, RTRIM( FloorName) as FloorName
FROM SYS_FloorInformation
where SYS_FloorInformation.ProjectID=@ProjectID
end
if @Type='dgvProject_CellDoubleClick_BindtvwRoom'--条件查询房源信息
begin
SELECT RoomResourcesID, RTRIM( Number) as Number
FROM SYS_RoomResources
where SYS_RoomResources.FloorID=@FloorID
end
if @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 JOIN
SYS_FloorInformation ON PW_ReserveUnit.FloorID = SYS_FloorInformation.FloorID INNER JOIN
SYS_RoomResources ON PW_ReserveUnit.UnitNumberID = SYS_RoomResources.RoomResourcesID INNER JOIN
PW_ClientInformation ON PW_ReserveUnit.ClientID = PW_ClientInformation.ClientID INNER JOIN
SYS_ProjectInformation ON SYS_FloorInformation.ProjectID = SYS_ProjectInformation.ProjectID
where SYS_RoomResources.FloorID=@FloorID and PW_ReserveUnit.IncalidOr=0
end
if @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 JOIN
SYS_FloorInformation ON PW_ReserveUnit.FloorID = SYS_FloorInformation.FloorID INNER JOIN
SYS_RoomResources ON PW_ReserveUnit.UnitNumberID = SYS_RoomResources.RoomResourcesID INNER JOIN
PW_ClientInformation ON PW_ReserveUnit.ClientID = PW_ClientInformation.ClientID INNER JOIN
SYS_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=@ReserveUnitID
UPDATE 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
end
if @Type='InsertReserve_Load_BindingcboFloorNumber'--查询楼栋信息
begin
SELECT FloorID, rtrim(FloorName) as FloorName
FROM SYS_FloorInformation
where SYS_FloorInformation.ProjectID=@ProjectID
end
if @Type='InsertReserve_Load_BindingcboUnitNumber'--查询房源信息
begin
SELECT RoomResourcesID, rtrim(Number) as Number
FROM SYS_RoomResources
where SYS_RoomResources.FloorID=@FloorID and SYS_RoomResources.SalesStatusID=102
end
if @Type='InsertReserve_Load_BindingcboHomeBuyersConsultant'--查询置业顾问
begin
SELECT StaffID, rtrim(StaffName) as StaffName
FROM SYS_Staff
end
if @Type='cboUnitNumber_SelectionChangeCommitted_SelectPrivateArea'--查询某一房源的面积
begin
SELECT rtrim(PricateArea) PricateArea
FROM SYS_RoomResources
where SYS_RoomResources.RoomResourcesID=@RoomResourcesID
end
if @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)
end
if @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;
}
else
dgvCustomer.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 JOIN
PW_ClientInformation ON PW_ReserveUnit.ClientID = PW_ClientInformation.ClientID INNER JOIN
SYS_FloorInformation ON PW_ReserveUnit.FloorID = SYS_FloorInformation.FloorID INNER JOIN
SYS_Staff ON PW_ClientInformation.HomeBuyerConsultantID = SYS_Staff.StaffID
where PW_ReserveUnit.ReserveUnitID=@ReserveUnitID
end
if @Type='ChangeReserve_Load_SelectFloor'--查询楼栋
begin
SELECT FloorID, rtrim(FloorName) as FloorName
FROM SYS_FloorInformation
where SYS_FloorInformation.ProjectID=@ProjectID
end
if @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
end
if @Type='ChangeReserve_Load_BindingcboChangeReason'--查询变更原因
begin
SELECT AttributeDetailsID, RTRIM(AuttributeDetailsName) AS AuttributeDetailsName
FROM SYS_AttributeDetails
where SYS_AttributeDetails.AuttributeSetID=37
end
if @Type='ChangeReserve_Load_SelectNewRoom'--查询新的房源
begin
SELECT RoomResourcesID,rtrim(Number) as Number
FROM SYS_RoomResources
where SYS_RoomResources.FloorID=@FloorID and SYS_RoomResources.SalesStatusID=102
end
if @Type='ChangeReserve_Load_SelectHomeBuyerConsultant'--查询置业顾问
begin
SELECT StaffID, rtrim(StaffName) AS HomeBuyerConsultant
FROM SYS_Staff
end
if @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
end
if @Type='btnSaveAndInsert_Click_UpdateRoomStatus'--修改所预定的房源的销售状态
begin
UPDATE SYS_RoomResources
SET SalesStatusID =99
where SYS_RoomResources.RoomResourcesID=@RoomResourcesID
end
if @Type='btnSaveAndInsert_Click_UpdateOldMsg'--查询旧的预定信息
begin
UPDATE PW_ReserveUnit
SET NewReserveUnitID = @NewReserveUnitID, ChangeReason = @ChangeReason, IncalidOr =1
where PW_ReserveUnit.ReserveUnitID=@ReserveUnitID
end
if @Type='btnSaveAndInsert_Click_UpdateOldRoomStatus'--修改旧的房源的销售状态
begin
UPDATE SYS_RoomResources
SET SalesStatusID =102
where SYS_RoomResources.RoomResourcesID=@RoomResourcesID
end
if @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 条件绑定cboFloor
public 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 条件绑定cboRoom
public 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 绑定cboChangeReason
public 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
end
if @Type='ReserveToSubscribe_Load_BindingcboFloorNumber'--查询楼栋信息
begin
SELECT FloorID, rtrim(FloorName) as FloorName
FROM SYS_FloorInformation
where SYS_FloorInformation.ProjectID=@ProjectID
end
if @Type='ReserveToSubscribe_Load_BindingcboUnitNumber'--查询房源信息
begin
SELECT RoomResourcesID, rtrim(Number) as Number
FROM SYS_RoomResources
where SYS_RoomResources.FloorID=@FloorID
end
if @Type='ReserveToSubscribe_Load_SelectedAllUnitNumber'----查询房源信息
begin
SELECT RoomResourcesID, rtrim(Number) as Number
FROM SYS_RoomResources
where SYS_RoomResources.FloorID=@FloorID and SYS_RoomResources.SalesStatusID=99
end
if @Type='ReserveToSubscribe_Load_BindingcboPaymentWay'--查询付款方式
begin
SELECT PayTypeID, rtrim(PayTypementName) as PayTypementName
FROM SYS_TypeOfPayment
end
if @Type='ReserveToSubscribe_Load_BindingcboPaymentDetailsOfName'--查询付款方式明细
begin
SELECT AttributeDetailsID, rtrim(AuttributeDetailsName) as AuttributeDetailsName
FROM SYS_AttributeDetails
where SYS_AttributeDetails.AuttributeSetID=31
end
if @Type='ReserveToSubscribe_Load_BindingcboDiscount'--查询折扣
begin
SELECT DiscountDetailID, rtrim(Discount) as Discount
FROM SYS_DiscountDetail
end
if @Type='ReserveToSubscribe_Load_BindingcboHomeBuyersConsultant'--查询置业顾问
begin
SELECT StaffID, rtrim(StaffName) as StaffName
FROM SYS_Staff
end
if @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 JOIN
PW_ReserveUnit ON SYS_RoomResources.RoomResourcesID = PW_ReserveUnit.UnitNumberID
where SYS_RoomResources.RoomResourcesID=@RoomResourcesID
end
if @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 JOIN
SYS_AttributeDetails INNER JOIN
SYS_DiscountOfPreferential ON SYS_AttributeDetails.AttributeDetailsID = SYS_DiscountOfPreferential.PreferentialTyoeID ON
SYS_AttributeDetails_1.AttributeDetailsID = SYS_DiscountOfPreferential.CaluculationID INNER JOIN
SYS_AttributeDetails AS SYS_AttributeDetails_2 ON SYS_DiscountOfPreferential.CaluculationTypeID = SYS_AttributeDetails_2.AttributeDetailsID LEFT OUTER JOIN
SYS_DiscountOfPreferentialDetail ON SYS_DiscountOfPreferential.DiscountID = SYS_DiscountOfPreferentialDetail.DiscountID
where 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.RoomResourceID
end
if @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)
end
if @Type='btnSaveAndInsert_Click_UpdateRoomStatus'--修改预定,修改房源销售状态
begin
UPDATE SYS_RoomResources
SET SalesStatusID =97
where SYS_RoomResources.RoomResourcesID=@RoomResourcesID
UPDATE PW_ReserveUnit
SET IncalidOr =1
where PW_ReserveUnit.UnitNumberID=@RoomResourcesID
end
if @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 JOIN
PW_ClientInformation ON PW_ReserveUnit.ClientID = PW_ClientInformation.ClientID INNER JOIN
SYS_FloorInformation ON PW_ReserveUnit.FloorID = SYS_FloorInformation.FloorID INNER JOIN
SYS_Staff ON PW_ClientInformation.HomeBuyerConsultantID = SYS_Staff.StaffID INNER JOIN
SYS_RoomResources ON PW_ReserveUnit.UnitNumberID = SYS_RoomResources.RoomResourcesID
where PW_ReserveUnit.ReserveUnitID=@ReserveUnitID
end
if @Type='SelectSubscribeMaximunNumber'--查询最大认购数
begin
SELECT rtrim(Subscribe) as Subscribe
FROM EverydayMaximumNumber
end
if @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;
}
else
dgvCustomer.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();
}
}