需要帮助以生成发票编号

时间:2019-05-20 08:20:03

标签: php

我有一个带有invoice_no列的表格发票,并且我想使用以下规则保存一个特定的数字:YEAR /month/day/(Invoice_number)从1迭代到...对于第二天,迭代又从头开始。

例如:

Y-M-D1-(1)
Y-M-D1-(2)
Y-M-D1-(3)

#For next day
Y-M-D2-(1)
Y-M-D2-(2)
Y-M-D2-(3)

谢谢。

2 个答案:

答案 0 :(得分:0)

您可以计算当天创建的所有发票。您可以使用简单的查询来完成此操作:SELECT count(*) AS cnt FROM invoices WHERE date(created_at) = curdate()

这样,您可以生成如下的ID:date(Ymd).$cnt+1)

答案 1 :(得分:0)

选择最高的数字(使用MAX())-您可以结合使用TRIM()SUBSTR()来过滤其他数据-因为您知道日期格式始终为13字符长(2019-05-20-的长度为13)。然后剩下一些数字和右括号,可以TRIM()移走。

使用LIKE过滤日期,并在末尾加上通配符%(表示字符串以给定值开头)。

鉴于该日期之前没有条目时它将返回NULL,请使用COALESCE()并在未找到任何行的情况下将其默认值设置为0。

SELECT COALESCE(MAX(TRIM(TRAILING ')' FROM SUBSTR(innvoice_no, 13))), 0) as HighestCount
FROM innvoice
WHERE innvoice_no LIKE CONCAT('2019-05-20', '%')