1. 程式人生 > >明源售樓系統技術解析 銷售控制(三)

明源售樓系統技術解析 銷售控制(三)


建立表格控制元件介面程式碼:

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

第一步:資料庫

程式碼:

if @Type='ConditionSelectRoom'
	begin
	SELECT     RoomDataID, HouseID, RoomNumber, Floor,ZhuangTaiWeiZhenFou
	FROM         SYS_RoomDataTable
	where 
[email protected]
and [email protected] order by RoomNumber end if @Type='ConditionSelect' begin SELECT RoomDescribeID, HouseID, ZhuiDaChengShu = NatureStoreyFinishNumber-NatureStoreyActionNumber+1 FROM [SYS_ RoomDescribeTable] where [SYS_ RoomDescribeTable][email protected]
end

第二步:BLL層

程式碼:

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

第三步:控制器

程式碼:

 #region  動態生成列
        public ActionResult LouDongBiaoMoXing(int LouDongID, int LouCengHao)
        {
            DataTable dt2 = new DataTable();//新建DataTable 
            DataTable dt = myAnJieGuanLi.TiaoJianChaXunFangJian(LouDongID, 1);//通過樓棟ID查詢有多少房間
            DataTable MiaoShuDt = myAnJieGuanLi.TiaoJianChaXunFangJianMiaoShu(LouDongID);//查詢最大樓層數
            dt2.Columns.Add("LouChen", typeof(string));//新增一列
            for (int i = 0; i < dt.Rows.Count; i++)//迴圈房號數
            {
                string DtLie = "F" + i;//拼接字串
                dt2.Columns.Add(DtLie, typeof(string));//把拼接的字串加入新增的那列中
            }
            int ZongLouChengShu = Convert.ToInt32(MiaoShuDt.Rows[0]["ZhuiDaChengShu"].ToString());//獲取最大樓層
            for (int i = 0; i < ZongLouChengShu; i++)//迴圈最大樓層
            {
                dt2.Rows.Add();//在新建的DataTable裡面新增一行
                string LouChen = "";//定義一個字串
                if (ZongLouChengShu - i > 9)
                {
                    LouChen = (ZongLouChengShu - i).ToString();
                }
                else
                {
                    LouChen = "0" + (ZongLouChengShu - i);
                }
                dt2.Rows[i]["LouChen"] = LouChen;//從大到小排列樓層號
                DataTable dt3 = myAnJieGuanLi.TiaoJianChaXunFangJian(LouDongID, ZongLouChengShu - i);//查詢房號
                for (int j = 0; j < dt.Rows.Count; j++)//迴圈把房號加入DataTable裡面
                {
                    string A = "F" + j;//再次定義房號數
                    string F1 =  dt3.Rows[j]["RoomNumber"].ToString().Trim();//獲取房號
                    DataTable bt = myXiaoShouKongZhi.Select_SellStatusRoom(Convert.ToInt32(dt3.Rows[j]["RoomDataID"]));//通過房間ID查詢銷售狀態
                    int BaoLiuID = Convert.ToInt32(bt.Rows[0]["SellStatusDetailID"].ToString());//獲取銷售狀態
                    if(BaoLiuID == 4){//判斷銷售狀態的ID為4時拼接字串
                       dt2.Rows[i][A] = F1+"留";
                    }
                    else{
                       dt2.Rows[i][A] = F1;
                    }
                }
            }
            List<Dictionary<string, object>> ListReturn = ConvertHelper.DtToList(dt2);//轉換成list列表格式
            return Json(ListReturn, JsonRequestBehavior.AllowGet);//將list列表轉換成Json資料返回介面
        }
       public ActionResult TiaoJianChaXunFangJianMiaoShu(int LouDongID)
        {
            DataTable dt = myAnJieGuanLi.TiaoJianChaXunFangJianMiaoShu(LouDongID);//查詢最大樓層數
            DataTable dt2 = myAnJieGuanLi.TiaoJianChaXunFangJian(LouDongID, 1);//通過樓棟ID查詢有多少房間
            try//出錯處理
            {
                string ZhuiDaChengShu = dt.Rows[0]["ZhuiDaChengShu"].ToString();
            }
            catch
            {

            }
            string FangHuiZhi = dt2.Rows.Count.ToString();
            return Content(FangHuiZhi);//返回資料
        }
        #endregion

第四步:介面

程式碼:

var y;
        var options = {};
        var String1 = "[[{ field:'LouChen', title: '樓層', width: 40},";//建立datagrid表格格式
        function onChangeHouseID() {
            Select_SellStatus();//查詢銷售狀態
            $.getJSON("/XiaoShouHouTai/TiaoJianChaXunFangJianMiaoShu?LouDongID=" + $('#cboLouDongMingCheng').combobox('getValue'),//獲取最大房號
                function (data) {
                    //alert(data);
                    if (data > 0) {
                        for (var i = 0; i < data; i++) {//迴圈最大房號
                            y = i + 1;
                            if (i < data - 1) {
                                var s = "{ field:'F" + i + "', title: '0" + y + "', width: 80,styler:cellStyler},"//拼接datagrid的列
                                String1 = String1 + s;
                            } else {
                                var s = "{ field:'F" + i + "', title: '0" + y + "', width: 80,styler:cellStyler}"
                                String1 = String1 + s + "]]";
                            }
                        }
                        //alert(String1);
                        options.columns = eval(String1);//將字串轉換為html格式
                        //alert(options);
                        $('#tbYeWuXiaoKong').datagrid(options);//加入到datagrid裡面
                        $.getJSON("/XiaoShouHouTai/LouDongBiaoMoXing?LouDongID=" + $('#cboLouDongMingCheng').combobox('getValue') + "&" + "LouCengHao=1",//查詢datagrid的資料
                        function (data) {
                            $('#tbYeWuXiaoKong').datagrid("loadData", data);//把房號繫結到datagrid裡面
                            String1 = "[[{ field:'LouChen', title: '樓層', width: 40},";//重新定義字串String1
                        });
                    } else {
                        Kong();//清空datagrid
                    }
                });
        }
        function Kong() {
            var String1 = "[[{}]]";//建立空的datagrid
            options.columns = eval(String1);
            $('#tbYeWuXiaoKong').datagrid(options);
            $('#tbYeWuXiaoKong').datagrid('loadData', { total: 0, rows: [] });//清空datagrid的資料
        }
          var RoomNumber = '';
                        var FangJianZhuangTaiID = 0;//宣告一個變數
                        function cellStyler(value, row, index) {
                            var row = $('#wZT').datagrid("getData");//獲取資料
                            for (var i = 0; i < row.rows.length; i++) {
                                FangJianZhuangTaiID = (row.rows[i].SellStatusID).toString().trim();//將datagrid中的SellStatusID賦值給變數
                                RoomNumber = (row.rows[i].we).toString().trim(); //將datagrid中的SellStatusID賦值給RoomNumber
                                if (FangJianZhuangTaiID == 5) {//判斷FangJianZhuangTaiID
                                    if (value == RoomNumber) {//判斷房間房號是否相同
                                        return 'background-color:#FF0000;color:#000000;';//將單元格變為紅色
                                    }
                                }
                                if (FangJianZhuangTaiID == 6) {
                                    if (value == RoomNumber) {
                                        return 'background-color:#00FF00;color:#000000;';
                                    }
                                } 
                            }
                        }

完成圖:


3、按鈕(easyui-linkbutton)

作用:單擊事件

按鈕截圖:


介面按鈕建立程式碼:

<div data-options="region:'east'" style="width:550px;height:432px">
                              <table style="padding:20px;">
                                  <tr><td colspan=4 style="width:60px">操作提示:</td></tr>
                                  <tr><td style="height:5px"></td></tr>
                                  <tr><td style="width:30px"></td> <td colspan=3>滑鼠左鍵點選 -- 選擇需要變更的房間</td></tr>
                                  <tr><td style="height:5px"></td></tr>
                                  <tr><td style="width:30px"></td> <td colspan=3>單擊"確定"鍵 -- 對選中的房間的狀態進行變更!></td></tr>
                                  <tr><td style="height:5px"></td></tr>
                                  <tr><td colspan=4 style="width:60px">說明:</td></tr>
                                  <tr><td style="height:5px"></td></tr>
                                  <tr><td style="width:30px"></td> <td colspan=3>左圖中"灰色"背景的房間為已經開始銷售的房間,></td></tr>
                                  <tr><td style="height:5px"></td></tr>
                                  <tr><td style="width:30px"></td> <td colspan=3>不能進行保留或放盤操作。</td></tr>
                                  <tr><td style="height:5px"></td></tr>
                                  <tr><td colspan=4 style="width:60px">操作:(將選中的房間的狀態變更為)</td></tr>
                                  <tr><td style="height:5px"></td></tr>
                                  <tr>
                                      <td><input onclick="BaoLiuLeiXing()" type="radio" name="LeiXing" id="KeShou" /></td><td>可售</td>
                                      <td><input onclick="BaoLiuLeiXing()" type="radio" name="LeiXing" id="BaoLiu" /></td><td>保留</td>
                                  </tr>
                                  <tr><td style="height:5px"></td></tr>
                                  <tr><td style="width:60px" >保留原因:</td><td colspan=3><input id="BaoLiuYuanYin" style="width:150px" /></td></tr>
                                  <tr><td style="height:5px"></td></tr>
                                  <tr><td colspan=4><a id="確定操作型別" class="easyui-linkbutton" onclick="QueDing()">確定</a></td></tr>
                                 </table>
                          </div>
                 </div>
                </div>

查詢保留房間與對房間進行保留操作的程式碼:

查詢保留房間:

第一步:資料庫

--查詢銷售狀態
   if @type='Select_SellStatus'
   begin
   SELECT     SYS_StatusChangeTable.StatusChangeID, SYS_StatusChangeTable.RoomDatumID, SYS_StatusChangeTable.SellStatusDetailID, SYS_SellStatusDetailTable.SellStatusID, 
                      SYS_SellStatusDetailTable.SellStatusCause, SYS_SellStatusTable.SellStatusName, SYS_RoomDataTable.RoomNumber, SYS_RoomDataTable.HouseID
   FROM         SYS_StatusChangeTable INNER JOIN
                      SYS_SellStatusDetailTable ON SYS_StatusChangeTable.SellStatusDetailID = SYS_SellStatusDetailTable.SellStatusDetailID INNER JOIN
                      SYS_SellStatusTable ON SYS_SellStatusDetailTable.SellStatusID = SYS_SellStatusTable.SellStatusID INNER JOIN
                      SYS_RoomDataTable ON SYS_StatusChangeTable.RoomDatumID = SYS_RoomDataTable.RoomDataID   
   where DeleteNot='False' and [email protected]
   end

第二步:BLL層

程式碼:

#region 查詢銷售狀態房間
        public DataTable Select_SellStatusRoom(int RoomDatumID)
        {
            SqlParameter[] SQL = {
                                    new SqlParameter("@type",SqlDbType.Char),
                                    new SqlParameter("@RoomDatumID",SqlDbType.Int)
                                 };
            SQL[0].Value = "Select_SellStatusRoom";
            SQL[1].Value = RoomDatumID;
            DataTable dt = myDALMethod.DAL_SelectDB_Par("SYS_MarketingControl", SQL);
            return dt;
        } 
        #endregion

第三步:控制器

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

第四步:介面

程式碼:

 var XiaoShouZhuangTai;//宣告變數
            var FangJianID;//宣告變數
            function we(rowIndex, field, value) {//方法名
                var ShiFouBaoLiu = "留";//宣告變數
                alert(value);                   
            if (value.indexOf(ShiFouBaoLiu) < 0) {//字元竄擷取
                $.getJSON("/XiaoShouQianTai/Select_SellStatusRoomNumber?RoomNumber=" + value + "&"
                                                                + "HouseID=" + $('#comLouDongMC').combobox('getValue'),
                                                                function (data) {
                                                                    if (data != null) {
                                                                        XiaoShouZhuangTai = data[0].SellStatusID;//將變數賦值
                                                                        FangJianID = data[0].RoomDatumID;                                                                 
                                                                    }
                                                                });
                                                            } else {
                                                                $.getJSON("/XiaoShouQianTai/Select_SellStatusRoomNumber?RoomNumber=" + value.substring(0, value.indexOf(ShiFouBaoLiu,0)) + "&"//擷取房號最後的字
                                                                + "HouseID=" + $('#comLouDongMC').combobox('getValue'),
                                                                function (data) {
                                                                    if (data != null) {
                                                                        XiaoShouZhuangTai = data[0].SellStatusID; //將變數賦值
                                                                        FangJianID = data[0].RoomDatumID;
                                                                    }
                                                                });
            }
          }

房間保留操作

第一步:資料庫

程式碼:

--修改銷售狀態
     if @type='Update_SellStatus'
     begin    
     SELECT     StatusChangeID, RoomDatumID, SellStatusDetailID
     FROM         SYS_StatusChangeTable    
     update SYS_StatusChangeTable
     set DeleteNot='true'
     where [email protected]
     end
     if @type='Insert_SellStatus'
     begin    
     insert into SYS_StatusChangeTable(RoomDatumID, SellStatusDetailID, DeleteNot,XiaoShouJiaID)
     values (@RoomDatumID, @SellStatusDetailID, 'false','4')
     select @@IDENTITY 
     end

第二步:BLL層

程式碼

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

第三步:控制器

程式碼:

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

第四步:介面

程式碼:

          function QueDing() {
          if (XiaoShouZhuangTai == 5) {//判斷狀態
              alert("該房間已銷售!!!");
          }
          if (XiaoShouZhuangTai == 6) {
              alert("該房間已銷售!!!");
          }
          if (XiaoShouZhuangTai == 3) {
              alert("該房間已銷售!!!");
          }
          if (ZhuangTai == 5) {
                        if (XiaoShouZhuangTai == 1) {
                            if (confirm('是否對該房間進行保留?')) {
                                $.getJSON("/XiaoShouHouTai/Update_SellStatus?RoomDatumID=" + FangJianID,
                                                                                             function (data) {
                                                                                                 if (data != null) {
                                                                                                     $.getJSON("/XiaoShouHouTai/Insert_SellStatus?RoomDatumID=" + FangJianID + "&"
                                                                                                               + "SellStatusDetailID=4");
                                                                                                     alert("保留成功!");

                                                                                                 }
                                                                                             });
                             }
                          }
        }
        if (ZhuangTai == 2) { 
           if (XiaoShouZhuangTai == 4) {
              if (confirm('是否對該房間取消保留?')) {
                  $.getJSON("/XiaoShouHouTai/Update_SellStatus?RoomDatumID=" + FangJianID,
                                                                               function (data) {
                                                                                   if (data != null) {
                                                                                       $.getJSON("/XiaoShouHouTai/Insert_SellStatus?RoomDatumID=" + FangJianID + "&"
                                                                                                 + "SellStatusDetailID=1");
                                                                                       alert("取消成功!");

                                                                                   }
                                                                               });
               }
            }
        }
             }  


4、選項卡(easyui-tabs)

作用:用於區分模組。

選項卡控制元件截圖:


介面控制元件程式碼:

<div id="tt" class="easyui-tabs" data-options="maxminzed:true">
            <div title="銷售控制">
            </div>
            <div title="換退房查詢">
            </div>
            <div title="更名查詢">
            </div>
            <div title="變更查詢">
            </div>
        </div>
        </div>

點選選項卡換退房查詢開啟換退房介面:


查詢功能實現:

第一步:資料庫

1、表與表的關係:


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

列名

類別

主鍵/外來鍵

說明

RoomBelongID

int - Identity

主鍵

房間所屬ID

CustomerDatumID

int

外來鍵

客戶資料ID

RoomDatumID

int

外來鍵

房間資料ID

RetreatRoomNot

nchar (100)

退房否

RetreatRoomDate

date

換退房日期

RetreatRoomCommission

nchar (100)

退房手續費

commissionCurrencyID

int

外來鍵

手續費幣種ID

RetreatRoomReason

nchar (100)

退房原因

ShouldDrawback

nchar (100)

應退款

RetreatRoomOperator

nchar (100)

退房經辦人

RetreatRoomApprover

nchar (100)

退房批准人

ApproveDate

date

批准日期

ExchangeRoomNot

bit

換房否

ExchangeRoomNewRoomNumberID

int

外來鍵

換房後房ID

ExchangeRoomOldRoomNumberID

int

外來鍵

換房前房ID

AgreementDatumID

int

外來鍵

合同資料ID

ChangeNameNot

bit

更名否

DeleteNot

bit

作廢否

ProfessionalWorkStatusID

int

外來鍵

業務狀態ID

表2:SYS_ProjectTable(SYS_專案表)

用於存放項目錄入的訊息

列名

型別

主鍵/外來鍵

說明

ProjectID

int - Identity

主鍵

專案ID

PremisesName

nchar (100)

樓盤名稱

ProjectCode

nchar (100)

專案程式碼

ProjectName

nchar (100)

專案名稱

BuildingPropertyID

int

外來鍵

建築性質ID

StructureID

int

外來鍵

結構ID

PlotRatio

decimal (18, 3)

容積率

RealEstateNumber

nchar (100)

專案房地產證號

DomesticLicence

nchar (100)

內銷許可證

ExportLicence

nchar (100)

外銷許可證

SupervisionInstitutionID

int

外來鍵

監理機構ID

ProjectRowNumber

int

專案排號

MassifNumber

nchar (100)

專案地塊編號

LandArea

nchar (100)

專案土地面積

LandSellContractNumber

nchar (100)

專案土地出讓合同號

LandUserBeginTime

nchar (100)

專案土地使用開始時間

LandUserEndTime

nchar (100)

專案土地使用結束時間

LandPurpose

nchar (100)

專案土地用途

AreaTypeID

int

外來鍵

專案面積型別ID

表3:SYS_AttributeAssembleDetailTable(SYS屬性集合明細表)

用於記錄簡單的資料

列名

型別

主鍵/外來鍵

說明

AttributeAssembleDetailID

int - Identity

主鍵

屬性集合明細ID

AttributeAssembleDetailName

nchar (100)

屬性集合ID

AttributeAssembleID

int

外來鍵

屬性集合明細名稱

AttributeAssembleDetailFar_ID

int

屬性集合明細Far_ID

表4:SYS_HouseTable(SYS樓棟表)

列名

型別

主鍵/外來鍵

說明

HouseID

int - Identity

主鍵

樓棟ID

HouseCode

nchar (40)

樓棟程式碼

HouseName

nchar (40)

樓棟名稱

RoomNumberModelTypeID

int

外來鍵

房間編號模式型別ID

ContractHouseName

nchar (40)

合同棟號名稱

GiveHouseStandardID

int

外來鍵

交屋標準ID

ShouldGiveHouseDate

date

應交房日期

BriefRemarks

nchar (80)

簡要備註

NumberOfPlies

int

層數

BuildingPropertyID

int

外來鍵

建築性質ID

SupervisionInstitutionID

int

外來鍵

監理機構ID

EstateNumber

nchar (80)

樓棟房地產證號

MassifNumber

nchar (80)

樓棟地塊編號

LandArea

decimal (18, 3)

樓棟土地面積

LandSellAgreementNumber

nchar (80)

樓棟土地出讓合同號

LandUserBeginDate

date

樓棟土地使用開始時間

LandUserEndDate

date

樓棟土地使用結束時間

HouseLandUse

nchar (80)

樓棟土地用途

HouseAreaTypeID

int

外來鍵

樓棟面積型別ID

ProjectSubregionID

int

外來鍵

專案所屬ID

StructureID

int

外來鍵

架構ID

表5:SYS_房間資料表(SYS_RoomData)

列名

類別

主鍵/外來鍵

說明

RoomDataID

int - Identity

主鍵

房間資料ID

HouseID

int

外來鍵

樓棟ID

RoomCode

nchar (50)

房間程式碼

RoomUnit

nchar (10)

房間單元

RoomNumber

nchar (20)

房號

natureNumber

nchar (20)

自然層號

Floor

nchar (20)

樓層號

ColumnNumber

nchar (20)

列號

CoveredArea

decimal (18, 3)

建築面積

BuilDingExceptArea

decimal (18, 3)

套內面積

AreaShare

decimal (18, 3)

分攤面積

BalconyArea

decimal (18, 3)

陽臺面積

RoomFaceDirectionID

int

外來鍵

朝     向

LandscapeID

int

外來鍵

景觀ID

HouseTypeID

int

外來鍵

戶型ID

RoomTypeID

int

外來鍵

房間型別ID

RoomRanking

nchar (20)

房間排號

OnbuildingExceptAreaCountNot

bit

按套內面積計算否

LockNot

bit

是否鎖定

CountWayID

int

外來鍵

計算方式ID

RoomDescribeID

int

外來鍵

SellStatusID

int

外來鍵

銷售狀態ID

AffiliatedHousePropertyNot

bit

BuildingPropertiesID

int

BuildingNot

bit

ZhuangTaiWeiZhenFou

bit

狀態為真否

表6:SYS_ClientDatumTable(客戶資料表)

Field

Type

主鍵/外來鍵

說明

ClientDatumID

int - Identity

主鍵

客戶資料ID

ClientCode

nchar (30)

客戶程式碼

ClientTypeID

int

外來鍵

客戶型別ID

SalesmanID

int

外來鍵

業務員ID

ClientName

nchar (20)

客戶名稱

Nationality

nchar (20)

國籍

Sex

nchar (10)

性別

ClientContactNumber

int

客戶聯絡電話

ClientMobilePhone

int

客戶手機

ClientPortraiture

nchar (30)

客戶傳真

ClientAddress

nchar (80)

客戶地址

ClientZipCode

nchar (50)

客戶郵編

ClientcredentialsNumber

nchar (70)

客戶證件號碼

ClientcredentialsName

nchar (30)

客戶證件名稱

ClientVisitDate

date

客戶到訪日期

ClientBirthday

date

客戶出生日期

ClientEmail

nchar (40)

客戶電子郵件

ClientJobUnit

nchar (40)

客戶工作單位

ClientDuties

nchar (40)

客戶職務

ClientDatumRemarks

nchar (80)

客戶資料備註

LiveArea

nchar (50)

居住區域

JobArea

nchar (50)

工作區域

Education

nchar (40)

教育程度

AgeGroup

nchar (40)

年齡段

FamilyStructure

nchar (40)

家庭結構

MaritalStatus

nchar (10)

婚姻狀況

FamilyIncome

nchar (80)

家庭收入

Occupation

nchar (50)

職業

KnowRoad

nchar (50)

認識途徑

ManagerSuggestion

nchar (80)

經理意見

DuplicateMarkingNot

bit

重複標識否

CorporationName

nchar (50)

公司名稱

CorporationJuridicalPerson

nchar (40)

公司法人

JuridicalPersonCD

nchar (80)

法人證件

CorporationPhone

int

公司電話

CorporationAddress

nchar (80)

公司地址

ClientDatumDiscardNot

bit

表7:SYS_ProjectSubregionTable(專案分割槽)

Field

Type

主鍵/外來鍵

說明

ProjectSubregionID

int - Identity

主鍵

專案分割槽ID

ProjectSubregionName

nchar (100)

外來鍵

專案分割槽名稱

ProjectID

int

外來鍵

專案ID

第一步:儲存過程

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

第二步:BLL層

程式碼:

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

第四步:控制器

程式碼:

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

第五步:介面

程式碼:
//查詢
        function HuanTuiFangChaXun() {
            $.getJSON("/XiaoShouQianTai/Select_ChangeRetreatRoomData",
            function (data) {
                $('#w換退房查詢').datagrid('loadData', data);
            });
        }
開啟換退房介面介面

開啟介面程式碼:

//開啟換退房修改介面
        function UpdateChangeRetreatRoom() {
            var row = $('#w換退房查詢').datagrid('getSelected');//選中datagrid中的一項
            if (row) {
                if (row.RetreatRoomNot == true) {//判斷退房否是否為真
                    $('#txtChange').val("退房原因:")//重寫按鈕顯示內容
                }
                if (row.ExchangeRoomNot == true) {//判斷換房否是否為真
                    $('#txtChange').val("換房原因:")//重寫按鈕顯示內容
                }
                BandHuanTuuiFang();//繫結介面資料
                $('#w修改退房資料').window("open");//
            } else {
                alert("請選擇修改的資料!");
             }                  
        }


可以對換房與退房的房間進行調整:

第一步:資料庫

程式碼:

--修改換退房資料
   if @type='Update_ChangeRetreatRoomData'
   begin
   update SYS_RoomBelongTable
   set    [email protected], [email protected], 
          [email protected],[email protected],
          [email protected], [email protected],
           [email protected], [email protected]
   where [email protected]
   end

第二步:BLL層

程式碼:

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

第三步:控制器

程式碼:

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

第四步:介面

程式碼:

繫結介面資料程式碼:

//繫結換退房資料
        function BandHuanTuuiFang(){
            var row = $('#w換退房查詢').datagrid('getSelected');
            $('#dtFaShengRiQi').datebox('setValue', row.HuanTuiRiQi);
            $('#txtShouXuFei').attr('Value', row.RetreatRoomCommission);
            $('#cboShouXuFeiBiZhong').combobox('setValue', row.commissionCurrencyID);
            $('#txtRetreatRoomReason').attr('Value', row.RetreatRoomReason);
            $('#txtYingTuiKuan').attr('Value', row.ShouldDrawback);
            $('#txtJingBanRen').attr('Value', row.RetreatRoomOperator);
            $('#txtPiZhunRen').attr('Value', row.RetreatRoomApprover);
            $('#dtPiZhunRenRiQi').datebox('setValue', row.PiZhunRiQi);
        }

點選修改程式碼:

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

                );
            } 
    }

僅用於學習,禁用於商業用途

相關推薦

系統技術解析 銷售控制

建立表格控制元件介面程式碼: <table class="easyui-datagrid" id="tbFangJianZiLiao" style="width:648px;height:442px" data-options="singleSelect:true,onClickCell:we,ro

系統技術解析 銷售控制更名查詢與變更查詢

#region 刪除更名資料 public ActionResult Delete_Rename(int RenameID) { int i = myXiaoShouKongZhi.Delete_Rename(RenameID);//需要刪除的那

系統技術解析 簽約管理

控制元件使用方法: 1、下拉樹: 作用:顯示的資料有層次 下拉樹控制元件截圖: 第一步:資料庫 程式碼: if @type='SelectBusinessStatus' begin SELECT BusinessStatusID AS YeWuZhuan

分布式緩存技術redis學習系列——redis高級應用主從、事務與鎖、持久化

master ica not ood www working can 出了 owin 上文《詳細講解redis數據結構(內存模型)以及常用命令》介紹了redis的數據類型以及常用命令,本文我們來學習下redis的一些高級特性。 回到頂部 安全性設置 設置客戶端操作秘密

threejs繞軸轉,粒子系統,控制器操作等

教程 mage speedy ima lar 鼠標 更新 end asc 前言:threejs系列的第三篇文章,也是一邊學習一邊總結; 1,一個物體繞著另一個物體轉動 第二篇文中主要是物體自轉,為了描述一個一個物體繞另一個物體轉,這裏我描述了一個月球繞地球公轉,並且自轉的場

Linux系統管理----存儲管理

網絡 運維 Linux系統中常用的壓縮和解壓縮工具: 壓縮:以時間換空間的一種操作; 壓縮的實現:標記 + 替換 壓縮比:某個文件在壓縮操作之前與壓縮操作之後的文件大小的比值;(比值越大,壓縮結果越小) 通常來說,純文本文件的壓縮比比較大;Linux中常用的壓縮工具: c

流媒體技術學習筆記之Nginx-Rtmp-Module統計某頻道在線觀看流的客戶數

sele lec rest uri class origin 客戶 擴展 raw 獲得訂閱者人數,可以方便地顯示觀看流的客戶數。 查看已經安裝好的模塊 /usr/local/nginx/sbin/nginx -V 安裝從源編譯Nginx和Nginx-RTMP所

Houdini技術體系 基礎管線 :UE4以選擇區域的方式對地形做生成和更新 上篇

class 通過 例如 tex 總結 對比 RM span 裏的 背景 前一節裏,解決了Houdini地形無縫導入到UE4的流程問題。但這種方法也有它的局限性,在實際遊戲項目裏,LA和LD還是偏向在遊戲引擎編輯器裏工作,他們的一些設計也會影響到地形的信息,那麽就需要

Houdini技術體系 基礎管線 :UE4 Landscape Component的多選支持 下篇

基本上 idt python obj als arr 合並 bsp c++ 背景 上篇中,我們介紹了如何修改Houdini Enigne來設置單個Landscape Compnent的Height和Layer的數據,但原生Houdini Engine並不支持多選Compon

Linux文件系統--LInix系類隨筆

負載 pro 系統命令 保存文件 配置文件 檢查 系統啟動 技術分享 found ①註意事項 linux不靠擴展名區分文件 默認:壓縮包 .gz .bz2 .tar.bz2 .tgz 二進制壓縮包 .rpm 所有設備包括硬盤、u盤、光盤必須分配掛載之

Linux 檔案系統呼叫open七日遊

接著上回,當對“.”和“..”處理完成後就直接返回進入下一個子路徑迴圈了,但如果當前子路徑不是“.”或“..”呢? 【fs/namei.c】 sys_open > do_sys_open > do_filp_open >&

充值系列——充值系統業務邏輯層實現

上一篇文章主要說明充值的執行邏輯和控制層的設計,這篇文章主要討論充值業務層的具體實現。 正如上一篇文章所說到的,生成訂單需要如下幾個步驟: (1)例項化操作人 (操作人) (2)例項化產品模型 (獲取產品的詳細資訊) (3)例項化訂單模型 (生成一筆狀態為“交易中”的訂單)

mybatis原始碼-解析配置檔案之配置檔案Configuration解析(超詳細, 值得收藏)

1. 簡介 1.1 系列內容 本系列文章講解的是mybatis解析配置檔案內部的邏輯, 即 Reader reader = Resources.getResourceAsReader("mybatis-config.xml"); SqlSessionFact

支付系統設計:銀行卡支付

這一期,回到支付系統的核心業務,即支付。每個電商公司的支付系統都已經或多或少的實現了交易核心功能,可也都是一直在改進,總是不斷的有新的需求冒出來。所以這一期開始,我們梳理一下:到底有哪些支付方式?每種支付方式都是怎麼運作的? 支付和交易 說到支付就不得不提交易。這

SpringBoot實現Java高併發秒殺系統之Web層開發

接著上一篇文章:SpringBoot實現Java高併發之Service層開發,今天我們開始講SpringBoot實現Java高併發秒殺系統之Web層開發。 Web層即Controller層,當然我們所說的都是在基於Spring框架的系統上而言的,傳統的SSH專案

推送系統從0到1:推送任務的建立

如何保證把內容準確無誤地投遞給想要投遞的人,這將會是推送系統通訊層面的難點。 上一篇文章已經講述瞭如何選擇推送服務,並梳理了使用者與裝置、Token之間的關係,用裝置號才能精準的標識使用者。如果還無法清晰的瞭解這三者的關係,可以回顧上一篇文章:推送系統從0到1(二)

阿里巴巴開發手冊解析個人筆記集合處理

文章目錄 1. 【強制】 關於 hashCode 和 equals 的處理,遵循如下規則: 1) 只要重寫 equals,就必須重寫 hashCode。 2) 因為 Set 儲存的是不重複的物件,依據 hashCode 和 equals 進行判斷,所以 Set 儲存

基於谷歌開源的TensorFlow Object Detection API視訊物體識別系統搭建自己的應用

下載opencv的cv2包在Python官網即可下載opencv相關庫,點選此處直接進入。 pip install opencv-python安裝完成後,進入IDLE輸入命令import cv2若未報錯,則opencv-python庫成功匯入,環境搭配成功。基於上篇新建Cam

基於FBX SDK的FBX模型解析與載入 -

6. 載入Camera和Light 在FBX模型中除了幾何資料外較為常用的資訊可能就是Camera和Light,雖然在遊戲中一般不直接從模型中得到這兩部分資訊,而是由引擎來提供,但是FBX中提供了對這些資訊儲存的支援。其實單純載入這兩部分的資訊很簡單,就像之前介紹的在整

關於大型網站技術演進的思考--儲存的瓶頸3

  儲存的瓶頸寫到現在就要進入到深水區了,如果我們所做的網站已經到了做資料庫垂直拆分和水平拆分的階段,那麼此時我們所面臨的技術難度的挑戰也會大大增強。   這裡我們先回顧下資料庫的垂直拆分和水平拆分的定義:   垂直拆分:把一個數據庫中不同業務單元的資料分到不同的資料庫裡。   水平拆分:是根據一定的規