PHP单据号操作

此处约定单据号格式为“ysd201604200001”,单据代码,日期,四位数字

 1         $conn = MySqlPdoHelper::getConnection();
 2
 3         $billCode = ‘ysd‘;
 4
 5         //获取今日的验收单编号数量
 6         $now = date(‘Ymd‘);
 7         $reg = ‘^‘. $billCode. $now;
 8         $sql = ‘SELECT count(1) FROM tb_yanshoudan_title WHERE bill_number REGEXP :reg;‘;
 9         $count = MySqlPdoHelper::executeScalar($sql, $conn, array(‘:reg‘ => $reg));
10         if($count == 0)
11         {
12             self::insertViewBag(‘billNumber‘,$billCode. $now.‘0001‘);
13         }
14         else
15         {
16             //获取今日验收单后四位的数组
17             $sql = ‘SELECT substr(bill_number,-4) AS bill FROM tb_yanshoudan_title WHERE bill_number REGEXP "^‘.$billCode.$now.‘";‘;
18             $result = MySqlPdoHelper::executeData($sql, $conn);
19
20             //遍历结果,找出最大值
21             $maxBill = ‘‘;
22             for($i = 0; $i < count($result); $i++)
23             {
24                 $preMaxBill = $maxBill;
25                 $nowMaxBill = $result[$i][‘bill‘];
26                 $maxBill = $preMaxBill < $nowMaxBill ? $nowMaxBill : $preMaxBill;
27             }
28             self::insertViewBag(‘billNumber‘,$billCode. $now. sprintf(‘%04d‘,$maxBill + 1));
29         }
30     }
时间: 2025-02-01 09:51:30

PHP单据号操作的相关文章

用SQL存储过程生成唯一单据号

在一些系统中,经理要生成单据号,为了不使多台客户端生成的单据号重复,一般要在服务端生成这种流水号,本文是在数据库中生成流水号,并且可以生成多种类型的单据号(比如销售单据号,盘点单据号,进货单据号等),利用数据库锁的原理,先看一下SQL语句: CREATE PROC [dbo].[getlsh]     @lx VARCHAR(6) ,     @lsh VARCHAR(30) OUTPUT AS     BEGIN  --启动事务处理         [email protected]_poin

SqlServer 可更新订阅中在订阅库并发获取最大单据号测试及解决法案!

说明: 很多交易的系统都需要单据号,而单据号按顺序并发获取又是一件头疼的事!~ 一般单据号格式为:前缀+日期+编号(如:KK20150501000001) 现在模拟测试,数据库中的单据号作为一张表处理. 数据库单据号表(Billnumber)存储每个账号及其最大的单据号总共一条记录 单据号是组合而成的字符串,后6位为序号. 获取单据号的存储过程: EXEC [dbo].[GetBillnumber_Test]@Account='Account',@Billnumber NVARCHAR(20)O

分布式系统中的必备良药 —— 全局唯一单据号生成

阅读目录 单据号是指什么 和唯一ID的不同是什么 为什么需要全局唯一单据号生成程序 实现的方式有哪些 笔者推荐的方式 结语 一.单据号是指什么 我们作为一个软件系统,肯定到处充满着各种单据,也必然需要有各种单据号与之对应.比如:电商行业的订单号.支付流水号.退款单号等等.SCM的采购单号.进货单号.出货单号.盘点单号等.在一个企业内部或者一个2C的平台,无法避免的需要通过某个单据号来进行沟通.所以一个好的单据号必然是便于沟通的,简单来说优先级就是 好记 > 好输入 > 好看,当然也是越短越好.

.Net常用技巧_生成单据号

自己用的,没整理,代码比较乱,请不要学我. using System; using System.Collections.Generic; using System.Text; using EXDataControl; using System.Data; using System.Data.SqlClient; using Utility; namespace MyTool { public class CreateDocNo { /// <summary> /// 获取单号 /// <

文件的inode号操作

linux给每个文件生成了一个唯一的inode编号,命令行下操作文件需要输入文件名,如果遇到文件名特别难输入(或者包含特殊符号)的情况,可以用inode号操作文件. 可以用这个命令查看inode号: ls -i 这样操作: find -inum 1185481 -exec md5sum {} \;

基于mysql的单据号生成(前缀+日期+自增id+后缀)

介绍 本次采用mysql处理,性能不是很好,对于高并发有要求的建议不要采用公司一个小项目,需要生成一个单据号,格式为: 日期 + 每日重新自增号,自己考虑了一下每日自增需要考虑并发和持久问题,两种数据库redis和mysql由于项目较小,所以没有redis因为这个增加一个redis好像有点不值得,所以采用mysql作为持久化处理,一下思路也是借鉴了网上的许多想法 源码 源码查看规则源码位置: blog-study:module-utils:work-no 欢迎大家随时批评指正 思路 首先根据需求

java.lang.String 的 + 号操作到底做了什么事情?

https://www.cnblogs.com/panzi/p/11956782.html 前言  在之前的面试经历中,对于String的考察还是挺频繁的,大致考察以下几个知识点: String 常量池 new String() == 和 equals 的区别 native 方法 String.intern()虽然面试中大体答对了,但是今天早上微信群里的一个问题我却答不上来,这个问题是这样的: String str3 = "what"; String str4 = str3 + &qu

VBA根据单据号从两个不同的sheet里筛选数据

Public Sub Filter() ' sheet1 是从乾坤里导出的总表 ' sheet2 是自己维护的未开票的提单号 ' 此函数是用来自动筛选匹配提单号,如果已经未开票的提单号则在sheet1,则sheet1的S列的值为 1 ,否则为 0 ' 只要把已经开票的提单号拷贝到sheet2 的E列就可以了,sheet1 从乾坤导出来的格式不变化 'If Workbooks(1).Worksheets("sheet1") Is Nothing Then 'MsgBox "sh

游标 根据目录号 操作用户 查看 对应得影像数

declare --定义一个变量icount number(18);beginfor cur_entry in ( --查询的语句根据目录号.用户查询出entry_id,案卷号 select entry_id,file_code from am_c_entry where catalogue_code='B-11-1-11' and created_by='sa' ) loop --变量初始值icount:=0;execute immediate ' select count(*) from a