技术文摘

设计,技术,行业

订单号,城市首字母+时间+自增序号

我们的订单号要求是 城市首字母+年+月+日+从00001自增 第二天刷新 比如今天是XM2017010400001--XM2017010400001一直增加到十二点 明天从零开始 第一单是XM2017010500001。

代码:
/**
* 获取单号
*/
function getBillNo($table,$field,$prev='IN')
{
//1、获取本商户的最新进货单号
$newBillNo = M($table)->field($field)->order('add_time desc')->select();
//2、拆分获取到的最新单号字符串
//3、判断时间是否为今天。若是:时间不变,流水号自增;若不是:时间为今日,流水号置00001。
//获取当前时间的年月日
$time = date('Ymd', time());
if ($newBillNo == null) { //无新纪录
return $prev . $time . '00001';
} else { //有记录
$billno = $newBillNo[0][$field];
//截取最新单据的时间
$billTime = substr($billno, strlen($prev), 8);
if ($billTime != $time) { //是否为今天的第一单
return $prev . $time . '00001';
} else {
$billWaterNo = substr($billno, strlen($prev) + 8, 5);
settype($billWaterNo, 'integer'); //将流水号转换成整型
$billWaterNo++; //流水号自增
//判断流水单号是否为5位
if (count($billWaterNo) < 5)
$billWaterNo = str_pad($billWaterNo, 5, '0', STR_PAD_LEFT); //左侧填充0至5位
return $prev . $time . $billWaterNo;
}
}
}
//调用方法
$order_no=$this->getBillNo('数据表名','数据表中字段名',"城市首字母");
//订单单号,需求单号:城市(首字母)+年月日+序号

//获取拼音首字母的方法
//汉字转字母,获取城市首字母
$Pinyin = new pinyin();
$words = $_POST['city'];
$result = $Pinyin->get_pinyin($words);