销售中的挂单

挂单与解挂是结账中常见的一种便捷式操作,那到底是什么意思呢?
在字面上,挂单指:客户结算时,突然想起还要买个东西,客户现有的商品先放在你这寄存,等下再过来一起结算;解挂指:把原来的挂单,提出来进行解挂,这就叫解挂!
在功能上我认为是这样的:获取需要购买商品信息ID和销售编号,金额,操作员等数据,保存到数据库中,待一段时间后,把数据提出来也就是解挂,在解挂的同时通过商品ID查询返回商品具体信息并在商品数据的基础上进行添加商品或减少商品或结账等操作。
下面看一下详细代码:

//获取挂单按钮ID,为挂单按钮添加点击事件
$(“#Btnregister”).click(function () {
var allID = “”;//申明变量接收遍历并且拼接后的商品ID
var tables = layuiTable.checkStatus(‘SaleTable’);//通过勾选需要够买商品表格选中数据
//通过遍历获取每一件需要购买的商品的ID
for (var i = 0; i < tables.data.length; i++) {
//遍历获取ID并且进行拼接
allID += “,”+ tables.data[i].CommodityID;//数组用push添加数据元素
}
//获取添加挂单记录所需要的具体信息
var identity = $(“#identity”).val();//操作人
var Text = $(“#identity option:eq(” + (parseInt(identity)) + “)”).text();//或去下拉框的具体文本值
var beizhu = $(“#beizhu”).val();//备注
var dnahao = $(“#Documentcode”).val();//单据编号
var day = $(“#Salesdata”).val();//销售日期
//金额
//获取合计金额(属性选择器)
var SaleJia = $(‘td[data-field=“MarketPrice”]’).children(‘div’)[1];
//合计金额总价格
var all = 0;//申明变量接收合计金额
//var AllPrice = 0;//申明变量接收
for (var i = 0; i < tables.data.length; i++) {
all += tables.data[i].Totalamount;//通过遍历获取合计金额
//AllPrice += tables.data[i].Price;//通过遍历获取总的吊牌价
}

            //Register是我申明的全局变量,用于把挂单所需数据封装成数据,在控制器接收时用表格直接接收即可
            Register = { who: Text, remark: beizhu, GDdanhao: dnahao, danDay: day, money: all, Commid: allID };
            //为必要的数据信息做判断当该数据信息为空时,做提示并要求填写
            if (allID == "" ) {
                layer.alert("请选择挂单商品!")
                return
            }
            if (identity == undefined || identity <= 0 || identity == null) {
                layer.alert("请选择营业员!")
                return
            }
            if (dnahao == undefined || dnahao == "" || dnahao == null) {
                layer.alert("请填写销售单号!")
                return
            }
            if (day == undefined || day == "" || day == null) {
                layer.alert("请填写销售日期!")
                return
            }
            //使用Post方式提交数据具体值是:$.post("路径",{传到控制器的具体值},回调)
            $.post("Insregister", { Register: Register, Commid: allID }, function (msg) {
                //console.log(msg);
                //如果控制器新增挂单数据信息成功,返回true
                if (msg.State==true) {
                    window.location.reload();//刷新页面
                    layer.alert(msg.Text);//弹出返回文本
                }
           })
        })
    });
});

控制器部分详细代码:

  public ActionResult Insregister(EntryOrders Register)
        {
            ReturnJson Msg = new ReturnJson();
            //try{}catch(Exception){}捕抓错误
            try
            {
                //单号作为唯一标识不可重复
                int intCount = myModel.EntryOrders.Where(o => o.GDdanhao == Register.GDdanhao).Count();
                //新增挂单信息
                if (intCount == 0)
                {
                    myModel.EntryOrders.Add(Register);
                    myModel.SaveChanges();
                    Msg.State = true;
                    Msg.Text = "挂单成功!";

                }
                else
                {
                    Msg.Text = "挂单单号重复,请更新!";
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e);
                Msg.Text = "数据异常,请检查!";
            }
            return Json(Msg, JsonRequestBehavior.AllowGet);
        }

数据库详细数据:
销售中的挂单_第1张图片

以上是我在进行写挂单功能的拙见与操作,如若有更好的方式或有我理解错误的地方欢迎指正。

你可能感兴趣的:(c#)