Prestashop-如何在AdminOrdersController.php中添加到期金额

zfycwa2u  于 2023-06-04  发布在  PHP
关注(0)|答案(1)|浏览(137)

我的Prestashop版本是1.7.5我想在AdminOrdersController中添加到期金额值。可以使用('total_paid_tax_incl'-'total_paid_real')计算到期金额

'total_paid_real' => array(
            'title' => $this->trans('Real Paid', array(), 'Admin.Global'),
            'align' => 'text-right',
            'type' => 'price',
            'currency' => true,
            'badge_success' => true,
        ),

所以我把它修改成这样

'total_paid_tax_incl'-'total_paid_real' => array(
            'title' => $this->trans('Amount Due', array(), 'Admin.Global'),
            'align' => 'text-right',
            'type' => 'price',
            'currency' => true,
            'badge_success' => true,
        ),

但它抛出一个错误,警告:遇到非数字值。虽然值'total_paid_tax_incl'和'total_paid_真实的'都是十进制(20,6)
你们能帮我解决这个问题吗?

lmvvr0a8

lmvvr0a81#

您需要向生成订单列表的SQL查询添加一个自定义字段,然后使用该字段。
在AdminOrdersController构造函数中,添加

$this->_select .= ' a.total_paid_tax_incl-a.total_paid_real as `due_value`';

紧接着$this->_select = '<default query>';
这将允许您在定义列表中显示的列时使用due_value变量

'due_value' => array(
             'title' => $this->trans('Amount Due', array(), 'Admin.Global'),
             'align' => 'text-right',
             'type' => 'price',
             'currency' => true,
             'badge_success' => true,
             'havingFilter' => true
         ),

请注意,我添加了havingFilter参数,因为它不是数据库中的标准字段,而是“动态”创建的。

相关问题