目前,发票没有。是XXXXXXX。我需要改变格式YYYY-MM-XXXX
YYYY - 当年 MM - 当月 XXXX - 自动生成没有。从每个月初的1900开始。
我看到很多帖子谈到改变增量值或在发票号码中加入INV等字符。
有人可以帮忙吗?
答案 0 :(得分:0)
注意:在继续之前备份数据库。
这是基本的理解: eav_entity_store 表有两个感兴趣的选项: 1)increment_prefix 和 2)increment_last_id 。 increment_prefix 指定将哪个前缀添加到数字,默认情况下等于«1»。 increment_last_id 定义最后一个实体编号。
在这里,我们可以更改订单,发票和货件的起始编号。 eav_entity_type 表具有允许我们更改数字格式的设置。这些是 increment_pad_length ,用于设置不包括其前缀的数字的长度, increment_pad_char 用于指定用于将数字填充到所需长度的字符。默认情况下为零。另一个重要字段是 increment_model ,它指定用于生成数字的类。
使用以下内容覆盖文件夹 app / code / local / Mage / Eav / Model / Entity / Increment 中的 Mage_Eav_Model_Entity_Increment_Order :
class Mage_Eav_Model_Entity_Increment_Order extends Mage_Eav_Model_Entity_Increment_Abstract
{
public function getNextId()
{
$last = $this->getLastId();
if (strpos($last, $this->getPrefix()) === 0) {
$last = (int)substr($last, strlen($this->getPrefix()) + 2);
} else {
$last = (int)$last;
}
$next = $last+1;
return $this->format($next);
}
public function format($id)
{
$result = $this->getPrefix() . date('y'); //year is appended to the increment id
$result .= str_pad((string)$id, $this->getPadLength(), $this->getPadChar(), STR_PAD_LEFT);
return $result;
}
}
根据您的需要修改代码。
来源:atwix