生成自增单号
开发工具与关键技术:web
作者:熊琪
撰写时间:2019.7.06
首先介绍下什么时单号自增,看图1;
(图1)
在图中单号格式的注意,但你销售时单号是唯一的所以通过在每在一次的销售之后就需要自增一,首先要明白要在什么的情况下自增首先就必须获取到上次的单号,在上次的单号上自增,首先看控制器代码:
public ActionResult Sellodd()
{
var sell = (from tb in myModels.B_Sell
where tb.StateID == 1 || tb.StateID == 4
orderby tb.SellID descending
select tb.SellNumber).ToList().FirstOrDefault();
string[] sad = sell.Split('D');
string ind = Convert.ToString(Convert.ToDecimal(sad[1]) + 1);
var sellOdd = Convert.ToString(ind);
return Json(sellOdd, JsonRequestBehavior.AllowGet);
}
方法名为Sellodd,声明sell接收查询的数据,通过销售表来查询单号,条件是在状态ID为1或4的情况下增加,以SellID倒叙排序,查询销售表中的单号,且选则第一条数据,FirstOrDefault,第一条数据,倒叙排序的第一条数据就是最后以条数据,这要就查出了要在单号的哪个值上继续添加,不重复,声名一数组接收分割完的单号,单号如图二所示是有XSD三字母后在拼接五位数字而成的,从字母D开始分割后会得到两个字符串,一个是XS,一个是00003,所以需要用数组接收,再继续就选择数组索引为1的字符串进行加一,要经过Conver强制转化后就不会出错
(图二)
最后返回自增后的数据到视图,
function Sellodd() {
var text = "";
$.post("/Commoditymanagement/ForegroundSales/Sellodd", function (Sellodd) {
if (Sellodd == undefined) {
$("#Number").html("XSD00001")
} else {
if (Sellodd.length < 6) {
for (var i = 0; i < 5 - Sellodd.length; i++) {
text += "0";
}
text += Sellodd;
}
$("#Number").val("XSD" + text);
}
})
返回值为数据库查出的,当数据库没查出数据时则证明还没有对应的销售单号,所以再对销售单的框中赋值为XSD00001.如果查出了数据就判断数据的长度是否小与六位数,满足条件则进行for循环,比如Sellodd的长度为两位数,i要小于5-2(3)所以i可以等于0,1,2这三个数当i为0时text为0,i为1时text为00, i为2时text为000,再加上sellodd,就得到比如00011这样的单号了,最后在给到单号框时拼接一个XSD就完成啦。