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');
    }
 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');
 }
示例#3
0
 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');
 }