public function downloadExcel() { $this->autoRender = false; $this->layout = ''; $data['Linnworksapi']['order_type'] = $this->request->data['Linnworksapis']['order_type']; $data['Linnworksapi']['location'] = $this->request->data['Linnworksapis']['location']; $data['Linnworksapi']['source'] = $this->request->data['Linnworksapis']['source']; $data['Linnworksapi']['subsource'] = $this->request->data['Linnworksapis']['subsource']; $data['Linnworksapi']['datefrom'] = $this->request->data['Linnworksapis']['datefrom']; $data['Linnworksapi']['dateto'] = $this->request->data['Linnworksapis']['dateto']; $data['Linnworksapi']['orderid'] = $this->request->data['Linnworksapis']['orderid']; App::import('Helper', 'Soap'); $SoapHelper = new SoapHelper(new View(null)); $getData = $SoapHelper->getFilteredOrder($data); App::import('Helper', 'Number'); $numberHelper = new NumberHelper(new View(null)); App::import('Vendor', 'PHPExcel/IOFactory'); App::import('Vendor', 'PHPExcel'); $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->getActiveSheet()->setCellValue('A1', 'OrderItemNumber'); $objPHPExcel->getActiveSheet()->setCellValue('B1', 'Name'); $objPHPExcel->getActiveSheet()->setCellValue('C1', 'Address'); $objPHPExcel->getActiveSheet()->setCellValue('D1', 'Postcode'); $objPHPExcel->getActiveSheet()->setCellValue('E1', 'Country'); $objPHPExcel->getActiveSheet()->setCellValue('F1', 'Item Count'); $objPHPExcel->getActiveSheet()->setCellValue('G1', 'Contents'); $objPHPExcel->getActiveSheet()->setCellValue('H1', 'Total Packet Value'); $objPHPExcel->getActiveSheet()->setCellValue('I1', 'Weight'); $objPHPExcel->getActiveSheet()->setCellValue('J1', 'HS'); $objPHPExcel->getActiveSheet()->setCellValue('K1', 'Deposit'); $objPHPExcel->getActiveSheet()->setCellValue('L1', 'Invoice Number'); $objPHPExcel->getActiveSheet()->setCellValue('M1', 'Bag barcode'); $i = 2; foreach ($getData->GetFilteredOrdersResponse->GetFilteredOrdersResult->Orders->Order as $order) { $contents = array(); $orderItems = array(); foreach ($order->OrderItems->OrderItem as $item) { $contents[] = $item->Qty . ' X ' . $item->ItemTitle; $orderItems[] = $item->OrderItemNumber; } $content = implode(" \n", $contents); $orderItem = implode(" \n", $orderItems); $itemCount = count($order->OrderItems->OrderItem); $address = $order->ShippingAddress->Address1 . ',' . $order->ShippingAddress->Address2 . ',' . $order->ShippingAddress->Address3; $address = explode(',', $address); $address = implode(" \n ", $address); $objPHPExcel->getActiveSheet()->setCellValue('A' . $i . '', $orderItem); $objPHPExcel->getActiveSheet()->setCellValue('B' . $i . '', $order->ShippingAddress->Name); $objPHPExcel->getActiveSheet()->setCellValue('C' . $i . '', $address); $objPHPExcel->getActiveSheet()->setCellValue('D' . $i . '', $order->ShippingAddress->PostCode); $objPHPExcel->getActiveSheet()->setCellValue('E' . $i . '', $order->ShippingAddress->CountryCode); $objPHPExcel->getActiveSheet()->setCellValue('F' . $i . '', $itemCount); $totlaCost = $numberHelper->currency($order->TotalCost, 'EUR'); $objPHPExcel->getActiveSheet()->setCellValue('G' . $i . '', $content); $objPHPExcel->getActiveSheet()->setCellValue('H' . $i . '', $totlaCost); $objPHPExcel->getActiveSheet()->setCellValue('I' . $i . '', '5'); $objPHPExcel->getActiveSheet()->setCellValue('J' . $i . '', '5'); $objPHPExcel->getActiveSheet()->setCellValue('K' . $i . '', '5'); $objPHPExcel->getActiveSheet()->setCellValue('L' . $i . '', '5'); $objPHPExcel->getActiveSheet()->setCellValue('M' . $i . '', '5'); $i++; } if ($this->request->data['Linnworksapis']['order_type'] == 0) { $objPHPExcel->getActiveSheet()->setTitle('Open Order'); $objPHPExcel->createSheet(); $name = 'Open Order'; } if ($this->request->data['Linnworksapis']['order_type'] == 1) { $objPHPExcel->getActiveSheet()->setTitle('Processed Order'); $objPHPExcel->createSheet(); $name = 'Procesed Order'; } if ($this->request->data['Linnworksapis']['order_type'] == 2) { $objPHPExcel->getActiveSheet()->setTitle('Cancelled Order'); $objPHPExcel->createSheet(); $name = 'Cancelled Order'; } header('Content-Encoding: UTF-8'); header('Content-type: text/csv; charset=UTF-8'); header('Content-Disposition: attachment;filename="' . $name . '.csv"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV'); $objWriter->save('php://output'); }