Prestashop - 后台 table 表格中的计算字段
Prestashop - calculated field in backoffice table form
我想在后台向 Prestashop 1.6 自定义 table 添加一个 "virtual" 字段。字段 indice_calculo_pvp2 不应保存到数据库中,因为它是根据 indice_calculo_pvp 和 precio_venta_recomendado 的值计算得出的。实现这个的正确方法是什么?
我的代码如下:
public function renderList() {
$this->addRowAction('edit');
$this->addRowAction('delete');
$this->fields_list = array(
'id_product_price' => array(
'search' => false,
'title' => 'ID'
),
'precio_coste' => array(
'title' => 'Precio coste',
'search' => false,
'callback' => 'callback_format_price',
'suffix' => '€'
),
'indice_calculo_pvp' => array(
'title' => 'Indice de cálculo PVP',
'search' => false,
'callback' => 'callback_format_price',
'suffix' => '%'
),
'indice_calculo_pvp2' => array(
'title' => 'Indice de cálculo PVP2',
'search' => false,
'callback' => 'callback_calculate_pvp',
'suffix' => '%'
),
'precio_venta_recomendado' => array(
'title' => 'Precio de venta recomendado con IVA',
'search' => false,
'callback' => 'callback_format_price',
'suffix' => '€'
)
);
return parent::renderList();
}
您有 2 个选择:
您可以在代码中使用回调函数:
public 函数 callback_calculate_pvp($id, $tr)
{
return $tr['indice_calculo_pvp'] * $tr['precio_venta_recomendado'];
}
- 您可以在字段列表
indice_calculo_pvp2
中使用虚拟列并在 SQL 查询或 getList 覆盖函数中设置值(就像 ProductController 对价格所做的那样)。
祝你好运。
在列表的 SQL SELECT 查询中使用计算。我不知道你的计算公式和你的 SELECT 查询是什么,但举个例子:
$this->_select = 'a.indice_calculo_pvp / a.precio_venta_recomendado AS indice_calculo_pvp2';
我想在后台向 Prestashop 1.6 自定义 table 添加一个 "virtual" 字段。字段 indice_calculo_pvp2 不应保存到数据库中,因为它是根据 indice_calculo_pvp 和 precio_venta_recomendado 的值计算得出的。实现这个的正确方法是什么?
我的代码如下:
public function renderList() {
$this->addRowAction('edit');
$this->addRowAction('delete');
$this->fields_list = array(
'id_product_price' => array(
'search' => false,
'title' => 'ID'
),
'precio_coste' => array(
'title' => 'Precio coste',
'search' => false,
'callback' => 'callback_format_price',
'suffix' => '€'
),
'indice_calculo_pvp' => array(
'title' => 'Indice de cálculo PVP',
'search' => false,
'callback' => 'callback_format_price',
'suffix' => '%'
),
'indice_calculo_pvp2' => array(
'title' => 'Indice de cálculo PVP2',
'search' => false,
'callback' => 'callback_calculate_pvp',
'suffix' => '%'
),
'precio_venta_recomendado' => array(
'title' => 'Precio de venta recomendado con IVA',
'search' => false,
'callback' => 'callback_format_price',
'suffix' => '€'
)
);
return parent::renderList();
}
您有 2 个选择:
您可以在代码中使用回调函数:
public 函数 callback_calculate_pvp($id, $tr) { return $tr['indice_calculo_pvp'] * $tr['precio_venta_recomendado'];
}- 您可以在字段列表
indice_calculo_pvp2
中使用虚拟列并在 SQL 查询或 getList 覆盖函数中设置值(就像 ProductController 对价格所做的那样)。
祝你好运。
在列表的 SQL SELECT 查询中使用计算。我不知道你的计算公式和你的 SELECT 查询是什么,但举个例子:
$this->_select = 'a.indice_calculo_pvp / a.precio_venta_recomendado AS indice_calculo_pvp2';