0

我有报价编号字段,因此在打印 PDF 编号时采用格式55-JD-2012, 56-JD-2012,57-JD-2012等。因此 55、56,57 是自动生成的报价编号。我有兴趣重置第一个值,即报价编号值,当然是来自报价模块。我希望它在今年将其重置,因此在打印 PDF 时,我将能够将其作为输出:55- JD -2013, 56 -JD -2013等等。目前,我得到的输出编号比我目前超过 500 的上一个报价编号大 1。

如何在哪个文件或何处重置此计数器?

4

1 回答 1

1

SugarCRM 中的 Quote Number 字段是一个自动递增字段(递增不是发生在 SugarCRM 本身,而是发生在数据库中)。它还在具有unique约束的字段上具有索引。

因此,不能简单地重置该字段。报价单编号必须是唯一的,并且必须自动递增。

为了在 SugarCRM 中有一个可重置的报价编号字段,您需要创建一个具有一些特殊逻辑的新字段和/或创建一个 SugarCRM 包,以自定义默认报价编号字段或新但等效字段的行为,并使用串联函数中的报价编号字段更新其他任何内容以使用新字段。

这将是最好的方法,尽管它需要做最多的工作。如果您使用 SugarCRM On Demand,而不是将其托管在您自己的服务器上,这也是完成您需要的最佳方式。这是执行此操作的唯一安全升级方式。可能已经有一个包可以让你这样做,所以你应该看看SugarExchange

或者,您需要更改 Quotes 数据库表 vardefs,删除unique对 index 的约束quote_num,然后重置数据库表的自动增量值以使其从您想要的任何数字开始计数。

要做到这一点,尽管不推荐(因为它破坏了与未来 SugarCRM 更新的兼容性,并且可能对依赖于报价编号字段的此特定行为的任何内容产生意外的副作用),修改,请按照以下步骤操作。

这假设您将 SugarCRM 实例托管在您自己的服务器上,而不是在 SugarCRM On Demand 上,并且您使用的是 MySQL。还有几种不同的方法可以最终使报价编号可重置;这只是其中之一 - 它可能不是最好的。

  1. 备份您的数据库和 SugarCRM 实例。当然,无论如何,您都应该定期进行这些备份。

  2. 编辑{SugarCRM root}/modules/Quotes/vardefs.php以删除对索引的unique约束。quote_num您可以在文件底部的数组indices元素中找到它。$dictionary['Quote']

    前:

    array('name' =>'quote_num', 'type'=>'unique', 'fields'=>array('quote_num', 'system_id'))

    后:

    array('name' =>'quote_num', 'type'=>'index', 'fields'=>array('quote_num', 'system_id'))

  3. 执行快速修复和重建。为此,您可以转到 SugarCRM 管理页面,单击修复,然后单击快速修复和重建。第一遍结束后,您将在页面底部看到一个文本框,其中包含一两条 SQL 语句。单击“执行”按钮将应用您对 Quotes vardefs 索引条目所做的更新。

  4. 重置quotes表格的自动增量值。如果你的数据库是 MySQL,你可以通过执行:( ALTER TABLE quotes AUTO_INCREMENT=1如果你想从 1 开始计数)。

完成这些步骤后,您的报价编号将再次从 1 开始(或您在ALTER TABLE声明中指定的任何数字),并且您将来可以通过重新执行该ALTER TABLE声明再次重置该数字。

于 2013-03-06T00:57:27.130 回答