Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace Sts\CmsCommon\Controllers;
- use App;
- use Log;
- use Illuminate\Http\Request;
- use Illuminate\Routing\Controller as BaseController;
- use Sts\PleafCore\CoreException;
- use Session;
- use BO;
- use MathieuViossat\Util\ArrayToTextTable;
- use Sts\PleafCore\DateUtil;
- use Zend\Text\Table\Decorator\Ascii;
- use Sts\CmsCommon\Helpers\ArrayTextTable;
- /**
- * Controller untuk Charts
- *
- * @author Widana, 29 Aug 2018
- *
- */
- class DownloadReportController extends BaseController
- {
- private $lines = [];
- public function downloadReport(Request $request)
- {
- // Generate lines
- $this->generateLine();
- // added escp command to data
- $nl = chr(0x0D).chr(0x0A);
- $initialized = chr(27).chr(64);
- $condensed1 = chr(15);
- $condensed0 = chr(18);
- $breakLine = chr(12);
- // space 1/8
- $spaceOnePerEight = chr(27).chr(48);
- $data = $initialized;
- $data .= $condensed1;
- foreach( $this->lines as $line ){
- $data .= $line.$nl;
- }
- print $data;
- }
- public function generateLine(){
- $pageWidthHeader = 46;
- $defaultSize = 0;
- $pageWidthRight = 39;
- $table = new \Zend\Text\Table\Table(['columnWidths' => [2, 20, 22, 10, 20]]);
- $table->setDecorator("ascii");
- $table->setDefaultColumnAlign(0, 'center');
- $table->setDefaultColumnAlign(1, 'center');
- $table->setDefaultColumnAlign(2, 'center');
- $table->setDefaultColumnAlign(3, 'center');
- $table->setDefaultColumnAlign(4, 'center');
- $table->appendRow(["No","Kode Barang", "Nama Barang", "Qty", "Keterangan"]);
- $data = [
- [
- 'line_no' => '1',
- 'product_code' => 'MILKCLEANSER',
- 'product_name' => 'MILK CLEANSER',
- 'qty' => '10',
- 'uom_name' => 'BOTOL',
- 'remark' => '',
- ],
- [
- 'line_no' => '2',
- 'product_code' => 'PRODUKPANJANGSEKALIUNTUKKODE01',
- 'product_name' => 'PRODUK PANJANG SEKALI UNTUK KODE',
- 'qty' => '10',
- 'uom_name' => 'PCS',
- 'remark' => '',
- ],
- [
- 'line_no' => '3',
- 'product_code' => 'PRODUKPANJANGSEKALIUNTUKKODE02',
- 'product_name' => 'PRODUK PANJANG SEKALI UNTUK NAMA YANG INI PLLUS PANJANG LAGI',
- 'qty' => '100',
- 'uom_name' => 'BOTOL',
- 'remark' => 'ini keterangan untuk produk yang akan dikirim dari gudang pusat',
- ],
- [
- 'line_no' => '4',
- 'product_code' => 'PRODUKPANJANGSEKALIUNTUKKODE03',
- 'product_name' => 'PRODUK PANJANG SEKALI UNTUK NAMA YANG INI PLLUS PANJANG LAGI',
- 'qty' => '100',
- 'uom_name' => 'BOX',
- 'remark' => 'ini keterangan untuk produk yang akan dikirim dari gudang pusat',
- ]
- ];
- foreach($data as $value) {
- $row = new \Zend\Text\Table\Row();
- $row->appendColumn(new \Zend\Text\Table\Column($value["line_no"]));
- $row->appendColumn(new \Zend\Text\Table\Column($value["product_code"]));
- $row->appendColumn(new \Zend\Text\Table\Column($value["product_name"]));
- $row->appendColumn(new \Zend\Text\Table\Column($value["qty"]." ".$value["uom_name"], "right"));
- $row->appendColumn(new \Zend\Text\Table\Column($value["remark"]));
- $table->appendRow($row);
- }
- // process header
- $this->lines = array(); // reset lines
- $this->lines[] = trimCentered(size("P.T Delovely Wow Cantiknya", $defaultSize), 120);
- $this->lines[] = (trimLeft(size("KEPADA Yth.", $defaultSize), $pageWidthHeader)).(' ').trimRight(size("Surat Jalan", $defaultSize), $pageWidthRight);
- $this->lines[] = (trimLeft(size("P.T Delovely Wow Cantiknya", $defaultSize), $pageWidthHeader)).(' ').trimRight(size("No: GTO-001", $defaultSize), $pageWidthRight);
- $this->lines[] = (trimLeft(size("Harap diterima barang - barang berikut ini:", $defaultSize), $pageWidthHeader));
- $this->lines[] = chr(0x0D).chr(0x0A).$table->render();
- $this->lines[] = (trimLeft(size("User: Super Admin Paling Super", $defaultSize), $pageWidthHeader)).(' ').trimRight(size("Semarang, 22-11,2018", $defaultSize), $pageWidthRight);
- $this->lines[] = "\n";
- $this->lines[] = (trimLeft(size(" Penerima", $defaultSize), 16)).(' ')
- .trimLeft(size(" Mengetahui", $defaultSize), 16)
- .(' ').trimLeft(size(" Cek Akhir", $defaultSize), 16)
- .(' ').trimLeft(size("Pembuat", $defaultSize), 16);
- $this->lines[] = "\n";
- $this->lines[] = "\n";
- $this->lines[] = (trimLeft(size("( )", $defaultSize), 16)).(' ')
- .trimLeft(size("( )", $defaultSize), 16)
- .(' ').trimLeft(size("( )", $defaultSize), 16)
- .(' ').trimLeft(size("( )", $defaultSize), 16);
- $this->lines[] = "\n";
- $this->lines[] = trimLeft(size("TANGGAL CETAK : ".date_format(date_create(DateUtil::dateNow()),"d-m-Y")
- ." JAM : ".date_format(date_create(DateUtil::dateTimeNow()),"H:i:s"), $defaultSize), 50);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement