钟表维修管理系统技术解析 工单报价(二)

来源:互联网 发布:精仿iphone6s淘宝 编辑:程序博客网 时间:2024/06/11 01:40
工单报价模块

功能描述:

  工单报价这个模块是从新给客户报价,当维修过程中发现需要更多的维修费用,就可以从新给客户报价,报价后客户可以继续维修,也可以取消维修。当报价完成,维修费就会修改为最新报价时的价钱。

 

实现思路:

      点击需要报价的单据,然后按报价按钮,弹出报价窗口,填写报价金额和说明等信息,点击确认报价按钮,点击按钮后会生成报价记录并且修改工单的费用金额。


界面效果图:

2.2.3(图1)

从界面上看我们这里用到新的控件有:

数字文本框(easyui-numberbox)

标签(label)



第一步:数据库

表与关系:


2.2.3(图2)

表1:工单报价(pw_GongDanBaoJia)

用于存放报价的数据

列名

类型

主外键

说明

GongDanBaoJiaID

int

主键

工单报价ID

GongDanLuRuID

int

外键

工单录入ID

CaoZuoYuanID

int

外键

录入员ID

BaoJiaQianGongDanZhuangTaiID

int

外键

报价时工单状态ID

BaoJiaJinE

decimal(18, 4)

 

报价金额

WeiXiuNeiRong

nchar(400)

 

维修内容

BaoJiaShuoMing

nchar(400)

 

报价说明

KeHuYiXiang

nchar(10)

 

客户意向

YouXiaoFou

Bit

 

有效否

GengXinShiJian

datetime

 

更新时间

表2:工单录入表(pw_GongDianLuRu)

用于存放钟表录入的信息

列名

数据类型

主键/外键

说明

GongDanLuRuID

int

主键

工单录入ID

YuanShiDanHaoID

int

外键

原始单号ID

GongDanZhuanTaiID

int

外键

工单状态ID

JinEZhuangTaiID

int

外键

金额状态ID

GongDanLeiXingID

int

外键

工单类型ID

KeHuID

int

外键

客户ID

JianXiuLeiXingID

int

外键

检修类型ID

PinPaiID

int

外键

品牌ID

GongDanRiQi

date

 

工单日期

GongDanBianHao

nchar(50)

 

工单编号

SongXiuRiQi

data

 

送修日期

YuFanRiQi

data

 

预返日期

FenYongJinE

decimal(18, 2)

 

费用金额

ZhongBiaoLeiXing

nchar(10)

 

钟表类型

BiaoKuan

nchar(10)

 

表款

GuiGe

text

 

规格/名称

XiuPeiJiLu

text

 

修配记录

JiXinXingHao

nchar(50)

 

机芯号

BiaoXingHao

nchar(50)

 

表型号

BiaoShenHao

nchar(50)

 

表身号

BiaoDaiJieShu

nchar(50)

 

表带节数

ZhongBiaoQiTaoMiaoShu

varchar(200)

 

钟表其他描述

WaiGuan

text

 

外观

KeHuZhiShu

varchar(200)

 

客户自述

YouXiaoFou

Bit

 

有效否

表3:员工表(sys_YuanGong)

列名

数据类型

主外键

说明

YuanGongID

int

主键

员工ID

LuRuYuanID

int

外键

录入员ID

JueSeID

int

外键

角色ID

YuanGongZhuangTaiID

int

外键

员工状态ID

MenDianID

int

外键

门店ID

YuanGongBianHao

nchar(50)

 

员工编号

YuanGongXingMing

nchar(50)

 

员工姓名

XingBie

nchar(50)

 

性别

JiGuan

nchar(50)

 

籍贯

XueLi

nchar(50)

 

学历

ChuShengRiQi

date

 

出生日期

ShenFenZhengHao

nchar(50)

 

身份证号

RuZhiRiQi

date

 

入职日期

RuZhiDiDian

nchar(50)

 

入职地址

YiDongShouJi

nchar(50)

 

移动手机

JiaTingDianHua

nchar(50)

 

家庭电话

DiXin

nchar(50)

 

底薪

DianZiYouXiang

nchar(50)

 

电子邮箱

TongXunDiZhi

nchar(100)

 

通讯地址

BeiZhu

nchar(100)

 

备注

GengXinShiJian

datetime

 

更新时间

YouXiaoFou

bit

 

有效否

MiMa

 

 

密码

表4:属性明细表(sys_PinPai)

列名

数据类型

主外键

说明

ShuXingMingXiID

int

主键

属性明细ID

LuRuYuanID

int

外键

录入员ID

ShuXingJiHeID

int

外键

 

ShuXingMingXiMingCheng

nchar(50)

 

 

GengXinShiJian

datetime

 

 

YouXiaoFou

bit

 

 

BeiZhu

nchar(50)

 

 

 

控件使用:

1、         数字文本框(easyui-numberbox)

控件截图:



创建控件html代码:

特别说明:precision是设置能有多少位小数

<input id="txtBaoJiaJinE" name="BaoJiaJinE" class="easyui-numberbox" precision="2" style="width: 440px; height: 28px" />

获取界面控件值代码:

$("#txtBaoJiaJinE").numberbox("getValue");

注意:当numberbox控件处于焦点状态是无法获取它的值的


给界面控件赋值代码:

$("#txtBaoJiaJinE").numberbox("setValue",22.23);

第二步:打开控制器

2.2.3(图3)


报价功能控制器代码:
#region 新增报价        /// <summary>        /// 插入报价单        /// </summary>        /// <param name="DtBaoJiaDan">报价表单</param>        /// <param name="intGongDanID">工单录入ID</param>        /// <param name="decBaoJiaJinE">报价金额</param>        /// <param name="intJinEZhaungTaiID">金额状态ID</param>        /// <param name="intGonDanZhuangTai">工单状态ID</param>        /// <returns></returns>        public ActionResult InsertBaoJiaDan(Models.pw_GongDanBaoJia DtBaoJiaDan, int intGongDanID, decimal decBaoJiaJinE, int intJinEZhaungTaiID, int intGonDanZhuangTai)        {            DtBaoJiaDan.YouXiaoFou = true;            DtBaoJiaDan.GengXinShiJian = DateTime.Now;            myMdl.pw_GongDanBaoJia.AddObject(DtBaoJiaDan);            if (myMdl.SaveChanges() > 0)//保存成功            {                UpdateBaiJia(intGongDanID, decBaoJiaJinE, intJinEZhaungTaiID, intGonDanZhuangTai);//调用最新报价                return Json(true, JsonRequestBehavior.AllowGet);            }            else            {                return Json(false, JsonRequestBehavior.AllowGet);            }        }        #endregion        #region 最新报价        /// <summary>        ///         /// </summary>        /// <param name="intGongDanID"></param>        /// <param name="decBaoJiaJinE"></param>        /// <param name="intJinEZhaungTaiID"></param>        /// <param name="intGonDanZhuangTai"></param>        /// <returns></returns>        public ActionResult UpdateBaiJia(int intGongDanID, decimal decBaoJiaJinE, int intJinEZhaungTaiID, int intGonDanZhuangTai)        {            var varGongDan = (from dtGongDan in myMdl.pw_GongDianLuRu                              where dtGongDan.GongDanLuRuID == intGongDanID                              select dtGongDan).Single<Models.pw_GongDianLuRu>();            varGongDan.FenYongJinE = decBaoJiaJinE;            #region -----回滚工单状态-------            if (intJinEZhaungTaiID == 84 && intGonDanZhuangTai == 83)            {                //查询历史报价单                var varBaoJiaJiLu = (from dtBaoJiaJiLu in myMdl.pw_GongDanBaoJia                                     orderby dtBaoJiaJiLu.GongDanBaoJiaID descending                                     select dtBaoJiaJiLu).ToArray();//转为数组                for (var i = 0; i < varBaoJiaJiLu.Count(); i++)                {                    if (varBaoJiaJiLu[i].BaoJiaQianGongDanZhuangTaiID != 83)//83是工单状态ID,对应的状态是取消维修                    {                        varGongDan.GongDanZhuanTaiID = Convert.ToInt32(varBaoJiaJiLu[i].BaoJiaQianGongDanZhuangTaiID);                        break;                    }                }            }            #endregion            if (intJinEZhaungTaiID == 1)            {                intJinEZhaungTaiID = 84;                varGongDan.GongDanZhuanTaiID = 83;            }            varGongDan.JinEZhuangTaiID = intJinEZhaungTaiID;            if (myMdl.SaveChanges() > 0)            {                return Json("报价成功", JsonRequestBehavior.AllowGet);            }            else            {                return Json(null, JsonRequestBehavior.AllowGet);            }        }        #endregion<span style="font-size: 24px;"><strong></strong></span>


报价功能界面html代码:

<div id="frmBaoJia" class="reveal-modal" style="width: 550px; height: 360px; padding: 10px;background-color:White" >        <center>        <table>            <tr>                 <td style="width:5px;"></td>                           <td style="width:200px;">工单编号:<label id="lblGongDanBianHao" style="color: #FF0000; border-bottom:1px solid #FF0000;"></label></td>                <td align="center" style="width:160px;">客户:<label id="lblKeHuXingMing" style="color: #FF0000;border-bottom:1px solid #FF0000;"></label></td>                <td style="width:190px;">电话:<label id="lblLianXiDianHua" style="color: #FF0000;border-bottom:1px solid #FF0000;"></label></td>            </tr>        </table>        <form id="formBaoJia">        <table>            <tr>                <td style="height: 10px">                </td>            </tr>            <tr>                <td>                    报价金额:<input id="txtBaoJiaJinE" name="BaoJiaJinE" class="easyui-numberbox" precision="2" style="width: 440px; height: 28px" />                    <input id="LuRuYuanID" name="CaoZuoYuanID" type="hidden"/>                    <input id="GongDanID" name="GongDanLuRuID" type="hidden" />                    <input id="GongDanZhuangTaiID" name="BaoJiaQianGongDanZhuangTaiID" type="hidden" />                </td>            </tr>            <tr>                <td>                    报价说明:<input id="txtBaoJiaShuoMing" name="BaoJiaShuoMing" class="easyui-textbox" style="width: 440px;height: 28px" />                </td>            </tr>            <tr>                <td>                    维修内容:<input id="txtWeiXiuNeiRong" name="WeiXiuNeiRong" class="easyui-textbox" style="width: 440px;                        height: 28px" />                </td>            </tr>            <tr>            <td>                <table>                        <tr>                        <td align="right" style="width:60px">客户意向:</td>                        <td><ul class="dowebok" style=" margin:0 0 0 0">                            <li><input type="radio" id="TongYi" name="KeHuYiXiang" data-labelauty="同意" checked value="同意" onclick="onclickrdoAgree()"/></li>                    <li><input type="radio" id="WeiQueDing" name="KeHuYiXiang" data-labelauty="未确定" value="未确定" onclick="onclickrdoAgree()"/></li>                            <li><input type="radio" id="BuTongYi" name="KeHuYiXiang" data-labelauty="不同意" value="不同意" onclick="onclickDisagree()"/></li>                    <li><input type="radio" id="WeiJieDianHuo" name="KeHuYiXiang" data-labelauty="未接电话" value="未接电话" onclick="onclickrdoAgree()"/></li>                        </ul>                        </td>                        </tr>                    </table>                </td>            </tr>            <tr>                <td colspan="2" align="center">                    <table id="dgvBaoJia" class="easyui-datagrid" style="width: 530px; height: 140px">                        <thead>                            <tr>                                <th data-options="field:'GongDanBaoJiaID',width:90,align:'center',hidden:true">                                    工单报价ID                                </th>                                <th data-options="field:'BaoJiaQianGongDanZhuangTaiID',width:90,align:'center',hidden:true">                                    工单状态ID                                </th>                                <th data-options="field:'BaoJiaJinE',width:60,align:'center'">                                    报价金额                                </th>                                <th data-options="field:'WeiXiuNeiRong',width:120,align:'center'">                                    维修内容                                </th>                                <th data-options="field:'BaoJiaShuoMing',width:120,align:'center'">                                    报价说明                                </th>                                <th data-options="field:'KeHuYiXiang',width:70,align:'center'">                                    客户意向                                </th>                                <th data-options="field:'GengXinShiJian',width:150,align:'center'">                                    更新时间                                </th>                            </tr>                        </thead>                    </table>                </td>            </tr>            <tr style="height:5px;"></tr>            <tr>                <td colspan="2" align="center">                                                <table>                        <tr>                            <td><a onclick="QueRenBaoJia()" id="btnConfirmOffer" class="goodButton" style="width: 80px; height: 23px">确认报价</a></td>                            <td><a onclick="" class="goodButton_c1" style="width: 80px; height: 23px"> 取消</a></td>                        </tr>                    </table>                </td>            </tr>        </table>        </form>    </center><a class="close-reveal-modal">×</a></div></div><strong><span style="font-size: 24px;"></span></strong>

报价功能jQuery代码:


//打开报价窗口var varGongDanZhuagnTai = 0;function BiaoJia() {    var Row = $('#dgvGongDan').datagrid("getSelected");//获取选中的单据    if (Row) {        if (Row.GongDanZhuanTaiID == 67) {//判断是否符合报价            alert("当前单据状态不可报价"); return;        }        $('#frmBaoJia').reveal($(this).data());//打开弹窗        $('#lblGongDanBianHao').html(Row.GongDanBianHao);        $('#lblKeHuXingMing').html(Row.KeHuXingMing);        $('#lblLianXiDianHua').html(Row.YiDongShouJi);        $('#GongDanID').val(Row.GongDanLuRuID);        varGongDanZhuagnTai = Row.GongDanZhuanTaiID;        $('#GongDanZhuangTaiID').val(Row.GongDanZhuanTaiID);        //调用控制器的方法        $.getJSON("/WeiXiuGuanLi/SelectBaiJiaJiLu?intGongDanID=" + Row.GongDanLuRuID,        function (data) {            $('#dgvBaoJia').datagrid("loadData", data);//给表格绑定数据        });    }    else {        alert("请选择要报价的单据");    }}//确认报价function QueRenBaoJia() {    var varJinEZhuangTaiID = 0;    if ($("#txtBaoJiaJinE").numberbox("getValue") == "") {        alert("请填写报价金额"); return;    }    if ($("#TongYi").prop("checked")) {        varJinEZhuangTaiID = 84;    }    if ($('#BuTongYi').prop("checked")) {        varJinEZhuangTaiID = 1;    }    if ($('#WeiQueDing').prop("checked") || $('#WeiJieDianHuo').prop("checked")) {        varJinEZhuangTaiID = 82;    }        $.ajax({            type: 'post',            url: '/WeiXiuGuanLi/InsertBaoJiaDan?intGongDanID=' + $('#GongDanID').val()                + "&" + "decBaoJiaJinE=" + $('#txtBaoJiaJinE').val()                + "&" + "intJinEZhaungTaiID=" + varJinEZhuangTaiID                + "&" + "intGonDanZhuangTai=" + varGongDanZhuagnTai,            data: $('#formBaoJia').serialize(),//获取整张表单            success: function (e) {                if (e) {                    alert("报价成功");                    $('#dgvBaoJia').datagrid("loadData", { total: 0, rows: {} });//清空表格                    $.getJSON("/WeiXiuGuanLi/SelectBaiJiaJiLu?intGongDanID=" + $('#GongDanID').val(),                            function (ShuJu) {                                $('#dgvBaoJia').datagrid("loadData", ShuJu);                                ClearBaoJia();//清空表单                                SelectGongDan();//刷新数据                            });                }                else {                    alert("报价失败");                }            }        });}



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






0 0
原创粉丝点击