|
Server : Apache System : Linux server.mata-lashes.com 3.10.0-1160.90.1.el7.x86_64 #1 SMP Thu May 4 15:21:22 UTC 2023 x86_64 User : matalashes ( 1004) PHP Version : 8.1.29 Disable Function : NONE Directory : /home/matalashes/.trash/app.bak.13/Controllers/Master/ |
Upload File : |
<?php
namespace App\Controllers\Master;
use \App\Controllers\Ps\PS_Controller;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
class Masterstokopname extends PS_Controller
{
private $id_column_name = 'mb_id';
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
parent::initController($request, $response, $logger); // TODO: Change the autogenerated stub
parent::setPageTitleBreadcrumb(true, 'Stock Opname', array('l1' => 'Master', 'l2' => 'Stock Opname'));
parent::setURLActionTable($this->class);
parent::setContentView($this->class);
parent::setBaseContAndModel($this->class, 'MasterBarang');
$this->validation_input = $this->validation->setRules([
"mb_name" => [
'label' => 'Nama Barang',
'rules' => 'required',
]
]);
}
public function index()
{
parent::filterStoreLoad();
parent::indexLoad();
}
public function action($state = '', $id = '')
{
$id = $this->myLib->reveal_id($id);
if ($id == 'override404') {
return redirect()->route('override404');
}
$category = new \App\Models\MasterKategori();
$this->view_data['_category'] = $category->where('deleted_at', null)->findAll();
if ($state == 'add') {
parent::stateAdd();
} else if ($state == 'edit') {
parent::stateEdit($id);
} else if ($state == 'delete') {
parent::stateDelete($id);
} else if ($state == 'restore') {
parent::stateRestore($this->id_column_name, $id);
} else if ($state == 'deletepermanent') {
parent::stateDeletePermanent($this->id_column_name, $id);
} else if ($state == 'view') {
parent::stateView($id);
} else {
return redirect()->route('override404');
}
}
public function trash()
{
parent::filterStoreLoad();
parent::trashView();
}
public function download(){
$spreadsheet = new Spreadsheet();
$spreadsheet->getDefaultStyle()->getFont()->setName('Arial Narrow');
$spreadsheet->getDefaultStyle()->getFont()->setSize(10);
$sheet = $spreadsheet->getActiveSheet();
$sheet->setTitle('Master Barang');
$sheet->setCellValue('A1', 'ID');
$sheet->setCellValue('B1', 'Kategori Barang');
$sheet->setCellValue('C1', 'Nama Barang');
$sheet->setCellValue('D1', 'Stok');
$row = 2;
$no = 1;
$qty = 0;
$total = 0;
$dtl = new \App\Models\MasterBarang();
$data = $dtl->where('deleted_at', null)->orderBy('mb_name', 'ASC')->findAll();
foreach ($data as $d) {
$cat = new \App\Models\MasterKategori();
$r = $cat->find($d->mk_id);
$catg = '';
if(isset($r->mk_name)){
$catg = $r->mk_name;
}
$sheet->setCellValue('A' . $row, $d->mb_id);
$sheet->setCellValue('B' . $row, $catg);
$sheet->setCellValue('C' . $row, $d->mb_name);
$sheet->setCellValue('D' . $row, $d->mb_stok);
$no++;
$this->setBorderAutoFit($sheet, 1, $row, 0, 'A', 'D');
$row++;
}
$filename = 'Master_Barang_' .date('dmyhis');
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xls');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="' . $filename . '.xls"');
header('Cache-Control: max-age=0');
// ob_end_clean();
$writer->save('php://output');
}
public function setBorderAutoFit($sheet, $start, $row, $minus, $l_start, $l_end, $ls_start = '', $ls_end = '', $repeat = 0)
{
$styleArray = array(
'borders' => [
'top' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
],
'left' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
],
'right' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
],
'bottom' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
],
],
);
$temp = $l_start;
foreach (range($l_start, $l_end) as $letter) {
for ($m = $start; $m <= $row - $minus; $m++) {
$sheet->getStyle($letter . $m)->applyFromArray($styleArray);
}
}
$l_start = $temp;
foreach (range($l_start, $l_end) as $columnID) {
$sheet->getColumnDimension($columnID)
->setAutoSize(true);
}
unset($styleArray);
}
}