I have a basic report:
<?php
class OrdersWithLineItems extends SS_Report
{
public function title()
{
return 'Orders with Line Items';
}
public function sourceRecords($params, $sort, $limit)
{
$ordersAL = new ArrayList();
$OrderHeaders = OrderHeader::get();
foreach ($OrderHeaders as $OrderHeader) {
foreach ($OrderHeader->OrderItems() as $OrderItem) {
$tempOrderHeader = new DataObject($OrderHeader->toMap());
$tempOrderHeader->ProductCode = $OrderItem->Product()->PartNumber;
$tempOrderHeader->ProductQuantity = $OrderItem->Quantity;
$ordersAL->add($tempOrderHeader);
}
}
return $ordersAL;
}
public function columns()
{
$fields = array(
'StripeID' => array(
'title' => 'StripeID',
'link' => false
),
'OrderTotal' => array(
'title' => 'OrderTotal',
'link' => false
),
'SalesTax' => array(
'title' => 'SalesTax',
'link' => false
),
'SalesTaxCity' => array(
'title' => 'SalesTaxCity',
'link' => false
),
'SalesTaxState' => array(
'title' => 'SalesTaxState',
'link' => false
),
'SalesTaxZip' => array(
'title' => 'SalesTaxZip',
'link' => false
),
'OrderComplete' => array(
'title' => 'OrderComplete',
'link' => false
),
'Email' => array(
'title' => 'Email',
'link' => false
),
'PromoCode' => array(
'title' => 'PromoCode',
'link' => false
),
'BillingName' => array(
'title' => 'BillingName',
'link' => false
),
'BillingAddress1' => array(
'title' => 'BillingAddress1',
'link' => false
),
'BillingAddress2' => array(
'title' => 'BillingAddress2',
'link' => false
),
'BillingCity' => array(
'title' => 'BillingCity',
'link' => false
),
'BillingState' => array(
'title' => 'BillingState',
'link' => false
),
'BillingZip' => array(
'title' => 'BillingZip',
'link' => false
),
'ShippingName' => array(
'title' => 'ShippingName',
'link' => false
),
'ShippingAddress1' => array(
'title' => 'ShippingAddress1',
'link' => false
),
'ShippingAddress2' => array(
'title' => 'ShippingAddress2',
'link' => false
),
'ShippingCity' => array(
'title' => 'ShippingCity',
'link' => false
),
'ShippingState' => array(
'title' => 'ShippingState',
'link' => false
),
'ShippingZip' => array(
'title' => 'ShippingZip',
'link' => false
),
'ProductCode' => array(
'title' => 'ProductCode',
'link' => false
),
'ProductQuantity' => array(
'title' => 'ProductQuantity',
'link' => false
)
);
return $fields;
}
}
Which works as expected in the browser, but when attempting to download I only get the column headers and blank rows. The number of rows is the same number as the records that are missing, but no data. Any ideas? And I going about building this report, with related (has_many) DataObjects incorrectly?
Thanks and Regards,
Todd M. Kimball