public function create(WriterInterface $writer)
{
$orderCSVWriter = $this->writerManager->createWriter('order', 'csv');
$number = $this->config->getNumberOrders();
$this->createProgressBar($number);
if (!$this->articleResource) {
throw new \RuntimeException('Article resource not available');
}
// Force order numbers to start at 10001
$this->ids['ordernumber'] = 1000;
$valueData = array('orderValues' => array(), 'orderDetailValues' => array(), 'customerBillingValues' => array(), 'customerShippingValues' => array(), 'customerBillingAttributeValues' => array());
$articleDetails = $this->articleResource->getArticleDetailsFlat();
$totalNumberCustomers = $this->config->getNumberCustomers();
$orderNumbers = array();
for ($orderCounter = 0; $orderCounter < $number; $orderCounter++) {
$id = $this->getUniqueId('order');
$orderNumber = $this->getUniqueId('ordernumber');
$orderNumbers[] = $orderNumber;
$currentCustomer = rand(1, $totalNumberCustomers);
$currentCustomerNumber = 20002 + $currentCustomer;
// Create a large order for the first order
$numArticles = $id === 1 ? 100 : rand(1, 4);
$totalPrice = $numArticles * 47.9;
$totalPricePreTax = $totalPrice / 1.19;
// Create faster inserts by using dummy data instead of INSERT..SELECTING the data from s_user_billingaddress/shippingaddress
$valueData['customerBillingValues'][] = "( {$currentCustomer}, {$id}, '', '', 'mr', {$currentCustomerNumber}, 'dummyFirst', 'dummyLast', 'street 1', '48153', 'Münster', '', 2, 0 )";
$valueData['customerShippingValues'][] = "( {$currentCustomer}, {$id}, '', '', 'mr', 'dummyFirst', 'dummyLast', 'street 1', '48153', 'Münster', 2, 0)";
$valueData['customerBillingAttributeValues'][] = "({$id}, {$id})";
$cleared = rand(9, 21);
$state = rand(0, 8);
$valueData['orderValues'][] = "({$id}, {$orderNumber}, {$currentCustomer}, {$totalPrice}, {$totalPricePreTax}, 0, 0, '2012-08-30 10:15:54', {$state}, {$cleared}, 4, '', '', '', '', 1, 0, '', '', '', NULL, '', '1', 9, 'EUR', 1, 1, '217.86.205.141')";
for ($detailCounter = 1; $detailCounter <= $numArticles; $detailCounter++) {
$detailId = $this->getUniqueId('orderDetail');
$articleId = $articleDetails[rand(1, $this->articleResource->getIds('article'))];
$valueData['orderDetailValues'][] = "({$detailId}, {$id}, '{$orderNumber}', '{$articleId}', 'sw-not-real', 47.90, 1, '{$this->generator->getSentence(3)}', 1, 0, 0)";
}
}
$writer->write($this->createSQL($valueData));
$orderCSVWriter->write($orderNumbers);
$this->finishProgressBar();
}