public function generatePickList() { App::import('Helper', 'Soap'); $SoapHelper = new SoapHelper(new View(null)); $test = $this->request->data['Linnworksapis']['orderid']; $skus = explode("---", $test); asort($skus); $skus = array_count_values($skus); $this->autoRender = false; $this->layout = ''; App::import('Vendor', 'PHPExcel/IOFactory'); App::import('Vendor', 'PHPExcel'); $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->getActiveSheet()->setCellValue('A1', 'SKU'); $objPHPExcel->getActiveSheet()->setCellValue('B1', 'Qty'); $objPHPExcel->getActiveSheet()->setCellValue('C1', 'Item Title'); $objPHPExcel->getActiveSheet()->setCellValue('D1', 'Bin Rack'); $objPHPExcel->getActiveSheet()->setCellValue('E1', 'BarCode'); $data = array(); $dataNew = array(); $csvData = array(); $index = 0; foreach ($skus as $key => $value) { $getData = $SoapHelper->getOrderById($key); foreach ($getData->GetFilteredOrdersResponse->GetFilteredOrdersResult->Orders->Order as $order) { foreach ($order->OrderItems->OrderItem as $item) { $data[$index]['Qty'] = $item->Qty; $data[$index]['ItemTitle'] = $item->ItemTitle; $data[$index]['binrack'] = $item->Binrack; $data[$index]['barcode'] = $item->Barcode; $data[$index]['category'] = $item->Category; $data[$index]['ChannelSKU'] = $item->SKU; $index++; } } } $json = json_encode($data); $arrays = json_decode($json, TRUE); $ind = 0; foreach ($arrays as $array) { $dataNew[$ind]['Qty'] = $array['Qty'][0]; $dataNew[$ind]['ItemTitle'] = $array['ItemTitle'][0]; $dataNew[$ind]['binrack'] = isset($array['binrack'][0]) ? $array['binrack'][0] : 'null'; $dataNew[$ind]['barcode'] = $array['barcode'][0]; $dataNew[$ind]['ChannelSKU'] = $array['ChannelSKU'][0]; $ind++; } /* get the duplicaate value */ $duplicatedata = $dataNew; foreach ($dataNew as $dataNewOuter => $dataNewOutervalue) { foreach ($dataNew as $dataNewInner => $dataNewInnervalue) { if ($dataNewOutervalue['ChannelSKU'] === $dataNewInnervalue['ChannelSKU']) { if ($dataNewOuter != $dataNewInner) { $duplicateValue[$dataNewInner] = $dataNewInnervalue['ChannelSKU']; } } } } if (isset($duplicateValue) && count($duplicateValue) > 0) { $a = array_unique($duplicateValue); $duplicateArray = $dataNew; foreach ($duplicateValue as $key => $value) { unset($dataNew[$key]); } sort($dataNew); $result = array_merge($dataNew, $a); } else { $result = $duplicatedata; } $e = 0; $r = 0; foreach ($result as $keyIndex => $keyValue) { $csvData[$r]['Qty'] = 0; foreach ($duplicatedata as $dupIndex => $dupValue) { if (isset($keyValue['ChannelSKU'])) { if ($keyValue['ChannelSKU'] == $dupValue['ChannelSKU']) { $csvData[$r]['Qty'] = $dupValue['Qty']; $csvData[$r]['ItemTitle'] = $dupValue['ItemTitle']; $csvData[$r]['binrack'] = $dupValue['binrack']; $csvData[$r]['barcode'] = $dupValue['barcode']; $csvData[$r]['ChannelSKU'] = $dupValue['ChannelSKU']; } } if (isset($keyValue)) { if ($keyValue == $dupValue['ChannelSKU']) { $csvData[$r]['Qty'] = $csvData[$r]['Qty'] + $dupValue['Qty']; $csvData[$r]['ItemTitle'] = $dupValue['ItemTitle']; $csvData[$r]['binrack'] = $dupValue['binrack']; $csvData[$r]['barcode'] = $dupValue['barcode']; $csvData[$r]['ChannelSKU'] = $dupValue['ChannelSKU']; } } } $r++; } $j = 2; foreach ($csvData as $csvdata) { $objPHPExcel->getActiveSheet()->setCellValue('A' . $j . '', $csvdata['ChannelSKU']); $objPHPExcel->getActiveSheet()->setCellValue('B' . $j . '', $csvdata['Qty'] . ' X ' . $csvdata['ItemTitle']); $objPHPExcel->getActiveSheet()->setCellValue('C' . $j . '', $csvdata['Qty']); $objPHPExcel->getActiveSheet()->setCellValue('D' . $j . '', $csvdata['binrack']); $objPHPExcel->getActiveSheet()->setCellValue('E' . $j . '', $csvdata['barcode']); $j++; } $data = date("Y-m-d"); header('Content-Encoding: UTF-8'); header('Content-type: text/csv; charset=UTF-8'); header('Content-Disposition: attachment;filename="Pick_List (' . $data . ' ).csv"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV'); $objWriter->save('php://output'); }
public function generatePickList() { App::import('Helper', 'Soap'); $SoapHelper = new SoapHelper(new View(null)); $test = $this->request->data['Linnworksapis']['orderid']; $skus = explode("---", $test); asort($skus); $skus = array_count_values($skus); $this->autoRender = false; $this->layout = ''; $data = array(); $index = 0; foreach ($skus as $key => $value) { $getData = $SoapHelper->getOrderById($key); foreach ($getData->GetFilteredOrdersResponse->GetFilteredOrdersResult->Orders->Order as $order) { foreach ($order->OrderItems->OrderItem as $item) { $data[$index]['Qty'] = $item->Qty; $data[$index]['ItemTitle'] = $item->ItemTitle; $data[$index]['binrack'] = $item->Binrack; $data[$index]['barcode'] = $item->Barcode; $data[$index]['category'] = $item->Category; $data[$index]['ChannelSKU'] = $item->SKU; $data[$index]['PostalServiceName'] = $getData->GetFilteredOrdersResponse->GetFilteredOrdersResult->Orders->Order->PostalServiceName; $index++; } } } $json = json_encode($data); $arrays = json_decode($json, TRUE); $ind = 0; foreach ($arrays as $array) { $dataNew[$ind]['Qty'] = $array['Qty'][0]; $dataNew[$ind]['ItemTitle'] = $array['ItemTitle'][0]; $dataNew[$ind]['binrack'] = isset($array['binrack'][0]) ? $array['binrack'][0] : 'null'; $dataNew[$ind]['barcode'] = isset($array['barcode'][0]) ? $array['barcode'][0] : 'null'; $dataNew[$ind]['ChannelSKU'] = isset($array['ChannelSKU'][0]) ? $array['ChannelSKU'][0] : 'null'; $dataNew[$ind]['PostalServiceName'] = $array['PostalServiceName'][0]; $ind++; } /* get the duplicaate value */ $duplicatedata = $dataNew; foreach ($dataNew as $dataNewOuter => $dataNewOutervalue) { foreach ($dataNew as $dataNewInner => $dataNewInnervalue) { if ($dataNewOutervalue['ChannelSKU'] === $dataNewInnervalue['ChannelSKU']) { if ($dataNewOuter != $dataNewInner) { $duplicateValue[$dataNewInner] = $dataNewInnervalue['ChannelSKU']; } } } } if (isset($duplicateValue) && count($duplicateValue) > 0) { $a = array_unique($duplicateValue); $duplicateArray = $dataNew; foreach ($duplicateValue as $key => $value) { unset($dataNew[$key]); } sort($dataNew); $result = array_merge($dataNew, $a); } else { $result = $duplicatedata; } $e = 0; $r = 0; foreach ($result as $keyIndex => $keyValue) { $csvData[$r]['Qty'] = 0; foreach ($duplicatedata as $dupIndex => $dupValue) { if (isset($keyValue['ChannelSKU'])) { if ($keyValue['ChannelSKU'] == $dupValue['ChannelSKU']) { $csvData[$r]['Qty'] = $dupValue['Qty']; $csvData[$r]['ItemTitle'] = $dupValue['ItemTitle']; $csvData[$r]['binrack'] = $dupValue['binrack']; $csvData[$r]['barcode'] = $dupValue['barcode']; $csvData[$r]['ChannelSKU'] = $dupValue['ChannelSKU']; } } if (isset($keyValue)) { if ($keyValue == $dupValue['ChannelSKU']) { $csvData[$r]['Qty'] = $csvData[$r]['Qty'] + $dupValue['Qty']; $csvData[$r]['ItemTitle'] = $dupValue['ItemTitle']; $csvData[$r]['binrack'] = $dupValue['binrack']; $csvData[$r]['barcode'] = $dupValue['barcode']; $csvData[$r]['ChannelSKU'] = $dupValue['ChannelSKU']; } } } $r++; } App::import('Vendor', 'tcpdf/tcpdf'); $pdf = new tcpdf(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); $date = date("Y-m-d"); $pdf->SetCreator(PDF_CREATOR); //$pdf->SetAuthor('Nicola Asuni'); //$pdf->SetTitle('TCPDF Example 006'); //$pdf->SetSubject('TCPDF Tutorial'); //$pdf->SetKeywords('TCPDF, PDF, example, test, guide'); // set default header data //$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, 'Pick List '.$date, PDF_HEADER_STRING); $pdf->SetHeaderData('', '', 'Pick List ' . $date, ''); // set header and footer fonts $pdf->setHeaderFont(array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); $pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); // set default monospaced font $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); // set margins $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $pdf->SetHeaderMargin(PDF_MARGIN_HEADER); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); // set auto page breaks $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); if (@file_exists(dirname(__FILE__) . '/lang/eng.php')) { require_once dirname(__FILE__) . '/lang/eng.php'; $pdf->setLanguageArray($l); } $pdf->SetFont('times', '', 8); $pdf->AddPage(); $j = 0; foreach ($csvData as $csvdata) { $j = $j + $csvdata['Qty']; } $html = '<h2>Total SKU : - ' . $j . '</h2> <table border="1" width="110%" > <tr> <th width="5%" align="center">S.No</th> <th width="20%" align="center">SKU</th> <th width="45%" align="center">Qty / Item Title</th> <th width="5%" align="center">Qty</th> <th width="5%" align="center">Bin Rack</th> <th width="10%" align="center" >BarCode</th> </tr>'; $i = 1; foreach ($csvData as $csvdata) { $html .= '<tr> <td align="center">' . $i . '</td> <td>' . $csvdata['ChannelSKU'] . '</td> <td align="left"><b>' . $csvdata['Qty'] . '</b> X ' . $csvdata['ItemTitle'] . '</td> <td align="center">' . $csvdata['Qty'] . '</td> <td >' . $csvdata['binrack'] . '</td> <td>' . $csvdata['barcode'] . '</td> </tr>'; $i++; } $html .= '</table>'; $pdf->writeHTML($html, true, false, true, false, ''); $js = 'print(true);'; $pdf->IncludeJS($js); $pdf->Output('Pick_List_' . $date . '.pdf', 'D'); }