|
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.bak2/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 App\Models\UploadModel;
use \PhpOffice\PhpSpreadsheet\Spreadsheet;
use \PhpOffice\PhpSpreadsheet\Writer\Xlsx;
class Masterstokopnameupload 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 Upload', array('l1' => 'Master', 'l2' => 'Stock Opname Upload'));
parent::setURLActionTable($this->class, array(
'uploaddata' => site_url('master/'.$this->class . '/action/uploaddata')
));
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();
$this->view_data['button_upload'] = 'Upload Excel Program';
}
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 if ($state == 'uploaddata') {
$temp = '';
$spreadsheet = '';
$this->view_data['state'] = 'uploaddata';
$this->view_data['button'] = 'Upload';
$this->view_data['button_select'] = 'Validasi Data';
$this->view_data['button_import'] = 'Import Data';
$this->view_data['error_validation'] = '';
$this->view_data['import_button'] = false;
if (isset($_POST['uploaddata'])) {
$check = $this->validate([
'userfile' => [
'uploaded[userfile]',
'mime_in[userfile,application/msexcel,application/vnd.ms-excel,application/xls,application/x-msexcel,application/x-xls,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet]',
'max_size[userfile,5000]',
],
]);
if ($check) {
$file = $this->request->getFile('userfile');
$newName = $file->getRandomName();
$file->move(WRITEPATH.'uploads', $newName);
$inputFileName = WRITEPATH.'uploads/' . $newName;
$inputFileType = 'Xls';
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType);
$spreadsheet = $reader->load($inputFileName);
$spreadsheet->setActiveSheetIndex(0);
$sheet = $spreadsheet->getActiveSheet();
$check = '';
$start = 2;
$brg = new \App\Models\MasterBarang();
$data = $brg->where('deleted_at', null)->findAll();
$count = count($data)+2;
for ($i = $start; $i < $count; $i++) {
$mb_id = $sheet->getCell('A' . $i)->getCalculatedValue();
$mb_name = $sheet->getCell('C' . $i)->getCalculatedValue();
$mb_stok = $sheet->getCell('D' . $i)->getCalculatedValue();
$barang = new \App\Models\MasterBarang();
$data_detil = $barang->where('mb_id',$mb_id)->where('deleted_at', null)->first();
if(isset($data_detil)){
//update data
$datamodel = array(
'mb_stok' => $mb_stok,
);
$barang->update($data_detil->mb_id, $datamodel);
}
}
$this->view_data['success'] = true;
$this->view_data['message'] = 'Data berhasil diimport!';
}else{
$this->view_data['error'] = true;
$this->view_data['message'] = 'Terjadi kesalahan dalam mengimport data!';
}
$this->render->viewAdmin($this->content_views['table_view'], $this);
}
} else {
return redirect()->route('override404');
}
}
public function trash()
{
parent::filterStoreLoad();
parent::trashView();
}
}