Я пытаюсь добавить новые столбцы в отчет / продажи / доставка.Столбцы теперь в порядке, но я не могу отобразить значения, приходящие из другой таблицы.
в приложении / коде / локальном / Маге / Продажи / Модель / Mysql4 / Отчет / Shipping.php
После
protected function _aggregateByOrderCreatedAt($from, $to)
{
try {
$tableName = $this->getTable('sales/shipping_aggregated_order');
$writeAdapter = $this->_getWriteAdapter();
$writeAdapter->beginTransaction();
if (is_null($from) && is_null($to)) {
$writeAdapter->query("TRUNCATE TABLE {$tableName}");
} else {
$where = (!is_null($from)) ? "so.updated_at >= '{$from}'" : '';
if (!is_null($to)) {
$where .= (!empty($where)) ? " AND so.updated_at <= '{$to}'" : "so.updated_at <= '{$to}'";
}
$subQuery = $writeAdapter->select();
$subQuery->from(array('so'=>$this->getTable('sales/order')), array('DISTINCT DATE(so.created_at)'))
->where($where);
Я добавляю эти 4 строки: $ subQuery-> joinInner:
$subQuery->joinInner(array('sd'=> $this->getTable('sales/order_datetime')),
"`sd`.`entity_id` = `so`.`entity_id`",
array()
);
$deleteCondition = 'DATE(period) IN (' . new Zend_Db_Expr($subQuery) . ')';
$writeAdapter->delete($tableName, $deleteCondition);
}
$columns = array(
'period' => "DATE(created_at)",
'shipping_description' => 'shipping_description',
'orders_count' => 'COUNT(entity_id)',
'total_shipping' => 'SUM(`base_shipping_amount` * `base_to_global_rate`)',
'store_id' => 'store_id',
'order_status' => 'status',
'point_relais' => 'shipping_description',
'date_commande' => "DATE(created_at)",
'date_livraison' => "DATE(value)"
$select = $writeAdapter->select()
->from($this->getTable('sales/order'), $columns)
->where('state NOT IN (?)', array(
Mage_Sales_Model_Order::STATE_PENDING_PAYMENT,
Mage_Sales_Model_Order::STATE_NEW
))
->where('is_virtual = 0');
if (!is_null($from) || !is_null($to)) {
$select->where("DATE(created_at) IN(?)", new Zend_Db_Expr($subQuery));
}
$select->group(array(
"DATE(created_at)",
'store_id',
'order_status',
'shipping_description'
'point_relais',
'date_commande',
'date_livraison',
'client'
));
В конце «value» в «date_livraison» - единственная переменная, полученная из таблицы sales / order_datetime иЯ не могу отобразить это.Другие переменные происходят из таблицы sales / order и хорошо отображаются.
Я думаю, что что-то не так или отсутствует в
$subQuery->joinInner(array('sd'=> $this->getTable('sales/order_datetime')),
"`sd`.`entity_id` = `so`.`entity_id`",
array()
);
Я объявил таблицу sales_order_datetime в app / code / Core/Mage/Sales/etc/config.xml с:
<order_datetime><table>sales_order_datetime</table></order_datetime>
И в базе данных date_livraison находится в соответствующем формате
Если вы могли бы мне помочь.Спасибо