|
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/public_html/simulasikite.mata-lashes.com/app/Controllers/Sc/ |
Upload File : |
<?php
namespace App\Controllers\Sc;
use \App\Controllers\Ps\PS_Controller;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
use App\Libraries\Ps\Mylibpublic;
use App\Models\UploadModel;
class Kirimbarangfgisc 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, 'List Pengiriman Barang', array('l1' => 'Kirim Barang FGI', 'l2' => 'List Pengiriman Barang FGI'));
parent::setURLActionTable($this->class);
parent::setContentView($this->class);
parent::setBaseContAndModel($this->class, 'KirimBarangFgiIc');
$this->validation_input = $this->validation->setRules([
"tkb_fgiic_suratjalan_no" => [
'label' => 'No Surat Jalan',
'rules' => 'required',
],
"tkb_fgiic_suratjalan_date" => [
'label' => 'Tgl Surat Jalan',
'rules' => 'required',
]
]);
}
public function index()
{
parent::filterStoreLoad();
// parent::indexLoad();
$this->session->set('trash', false);
$this->session->set('keyword', '');
$start = date('Y-m-01');
$end = date('Y-m-t');
if ($_POST) {
$start = $this->request->getVar('start');
$end = $this->request->getVar('end');
}
$dtl = new \App\Models\KirimBarangFgiIc();
$pagination = $dtl->where('deleted_at', null)
->where('tkb_fgiic_status !=', 0)
// ->where('date(created_at) >=', $start)
// ->where('date(created_at) <=', $end)
->findAll();
$this->view_data['_data'] = $pagination;
$this->view_data['start'] = $start;
$this->view_data['end'] = $end;
$this->render->viewAdmin($this->content_views['table_view'], $this);
}
public function action($state = '', $id = '')
{
$barang = new \App\Models\MasterBarang();
$this->view_data['_barang'] = $barang->where('deleted_at', null)->findAll();
$pob = new \App\Models\MasterPob();
$this->view_data['_pob'] = $pob->where('deleted_at', null)->findAll();
$bulumata = new \App\Models\MasterBulumata();
$this->view_data['_bulumata'] = $bulumata->where('deleted_at', null)->findAll();
$id = $this->myLib->reveal_id($id);
if ($id == 'override404') {
return redirect()->route('override404');
}
if ($state == 'add') {
$this->mylib = new Mylibpublic();
$this->view_data['state'] = 'add';
$this->view_data['button'] = 'Simpan';
$this->view_data['upload_data'] = $this->upload_data;
if ($_POST) {
if (!$this->validation_input->withRequest($this->request)->run()) {
$this->view_data['error'] = true;
$this->view_data['message'] = 'Ada kesalahan dalam pengisian form!';
$this->view_data['error_list'] = $this->validation_input->getErrors();
} else {
unset($_POST['id']);
$_mdl = $this->myLib->getNewModel($this->models['base_model']);
$_datamodel = array();
$_datamodel['tkb_fgiic_suratjalan_no'] = $this->request->getVar('tkb_fgiic_suratjalan_no');
$_datamodel['tkb_fgiic_suratjalan_date'] = $this->request->getVar('tkb_fgiic_suratjalan_date');
$_datamodel['tkb_fgiic_suratjalan_no2'] = $this->request->getVar('tkb_fgiic_suratjalan_no2');
$_datamodel['tkb_fgiic_suratjalan_date2'] = $this->request->getVar('tkb_fgiic_suratjalan_date2');
$_datamodel['tkb_fgiic_suratjalan_no3'] = $this->request->getVar('tkb_fgiic_suratjalan_no3');
$_datamodel['tkb_fgiic_suratjalan_date3'] = $this->request->getVar('tkb_fgiic_suratjalan_date3');
$_datamodel['tkb_fgiic_suratjalan_no4'] = $this->request->getVar('tkb_fgiic_suratjalan_no4');
$_datamodel['tkb_fgiic_suratjalan_date4'] = $this->request->getVar('tkb_fgiic_suratjalan_date4');
$_datamodel['tkb_fgiic_suratjalan_no5'] = $this->request->getVar('tkb_fgiic_suratjalan_no5');
$_datamodel['tkb_fgiic_suratjalan_date5'] = $this->request->getVar('tkb_fgiic_suratjalan_date5');
$_datamodel['tkb_fgiic_suratjalan_no6'] = $this->request->getVar('tkb_fgiic_suratjalan_no6');
$_datamodel['tkb_fgiic_suratjalan_date6'] = $this->request->getVar('tkb_fgiic_suratjalan_date6');
$_datamodel['tkb_fgiic_suratjalan_no7'] = $this->request->getVar('tkb_fgiic_suratjalan_no7');
$_datamodel['tkb_fgiic_suratjalan_date7'] = $this->request->getVar('tkb_fgiic_suratjalan_date7');
$_datamodel['tkb_fgiic_suratjalan_no8'] = $this->request->getVar('tkb_fgiic_suratjalan_no8');
$_datamodel['tkb_fgiic_suratjalan_date8'] = $this->request->getVar('tkb_fgiic_suratjalan_date8');
$_datamodel['tkb_fgiic_suratjalan_no9'] = $this->request->getVar('tkb_fgiic_suratjalan_no9');
$_datamodel['tkb_fgiic_suratjalan_date9'] = $this->request->getVar('tkb_fgiic_suratjalan_date9');
$_datamodel['tkb_fgiic_suratjalan_no10'] = $this->request->getVar('tkb_fgiic_suratjalan_no10');
$_datamodel['tkb_fgiic_suratjalan_date10'] = $this->request->getVar('tkb_fgiic_suratjalan_date10');
$_datamodel['tkb_fgiic_pob'] = $this->request->getVar('tkb_fgiic_pob');
$_datamodel['tkb_fgiic_parsial'] = $this->request->getVar('tkb_fgiic_parsial');
if(isset($_POST['kirim'])){
$_datamodel['tkb_fgiic_status'] = 1;
$_datamodel['tkb_fgiic_status_mkt'] = 0;
$_datamodel['tkb_fgiic_status_sc'] = 1;
}
$item = count($this->request->getVar('barang'));
$brg = $this->request->getVar('barang');
$n = $this->request->getVar('nilai');
$b = $this->request->getVar('bulumata');
$qbm = $this->request->getVar('qty_bm');
$ma = $this->request->getVar('matauang');
$na = $this->request->getVar('nilaiasli');
$tkb_fgiic_item = array();
$sum = 0;
for ($j=0; $j < $item; $j++) {
$valqbm = str_replace('.',"",$qbm[$j]);
$data = array(
'barang' => json_decode($brg[$j]),
'nilai' => $n[$j],
'matauang' => $ma[$j],
'nilaiasli' => $na[$j],
'bulumata' => $b[$j],
'qty_bm' => $valqbm,
);
array_push($tkb_fgiic_item, $data);
}
$_datamodel['tkb_fgiic_item'] = json_encode($tkb_fgiic_item);
try {
if (!$_mdl->save($_datamodel)) {
throw new \CodeIgniter\Database\Exceptions\DatabaseException();
} else {
$this->setMessage(false, true, $this->msgLib->scs_add());
}
} catch (Exception $e) {
$this->setMessage(true, false, $this->msgLib->err_add());
}
}
}
$this->render->viewAdmin($this->content_views['form_add_view'], $this);
} else if ($state == 'edit') {
// parent::stateEdit($id);
$mdl = $this->myLib->getNewModel($this->models['base_model']);
$_data = $mdl->find($id);
$this->view_data['state'] = 'edit';
$this->view_data['button'] = 'Simpan';
$this->view_data['id'] = $id;
$this->view_data['_data'] = $_data;
$this->view_data['upload_data'] = $this->upload_data;
if ($_POST) {
if (!$this->validation_input->withRequest($this->request)->run()) {
$this->view_data['error'] = true;
$this->view_data['message'] = 'Ada kesalahan dalam pengisian form!';
$this->view_data['error_list'] = $this->validation_input->getErrors();
} else {
unset($_POST['id']);
$_mdl = $this->myLib->getNewModel($this->models['base_model']);
$_datamodel = array();
$_datamodel['tkb_fgiic_suratjalan_no'] = $this->request->getVar('tkb_fgiic_suratjalan_no');
$_datamodel['tkb_fgiic_suratjalan_date'] = $this->request->getVar('tkb_fgiic_suratjalan_date');
$_datamodel['tkb_fgiic_suratjalan_no2'] = $this->request->getVar('tkb_fgiic_suratjalan_no2');
$_datamodel['tkb_fgiic_suratjalan_date2'] = $this->request->getVar('tkb_fgiic_suratjalan_date2');
$_datamodel['tkb_fgiic_suratjalan_no3'] = $this->request->getVar('tkb_fgiic_suratjalan_no3');
$_datamodel['tkb_fgiic_suratjalan_date3'] = $this->request->getVar('tkb_fgiic_suratjalan_date3');
$_datamodel['tkb_fgiic_suratjalan_no4'] = $this->request->getVar('tkb_fgiic_suratjalan_no4');
$_datamodel['tkb_fgiic_suratjalan_date4'] = $this->request->getVar('tkb_fgiic_suratjalan_date4');
$_datamodel['tkb_fgiic_suratjalan_no5'] = $this->request->getVar('tkb_fgiic_suratjalan_no5');
$_datamodel['tkb_fgiic_suratjalan_date5'] = $this->request->getVar('tkb_fgiic_suratjalan_date5');
$_datamodel['tkb_fgiic_suratjalan_no6'] = $this->request->getVar('tkb_fgiic_suratjalan_no6');
$_datamodel['tkb_fgiic_suratjalan_date6'] = $this->request->getVar('tkb_fgiic_suratjalan_date6');
$_datamodel['tkb_fgiic_suratjalan_no7'] = $this->request->getVar('tkb_fgiic_suratjalan_no7');
$_datamodel['tkb_fgiic_suratjalan_date7'] = $this->request->getVar('tkb_fgiic_suratjalan_date7');
$_datamodel['tkb_fgiic_suratjalan_no8'] = $this->request->getVar('tkb_fgiic_suratjalan_no8');
$_datamodel['tkb_fgiic_suratjalan_date8'] = $this->request->getVar('tkb_fgiic_suratjalan_date8');
$_datamodel['tkb_fgiic_suratjalan_no9'] = $this->request->getVar('tkb_fgiic_suratjalan_no9');
$_datamodel['tkb_fgiic_suratjalan_date9'] = $this->request->getVar('tkb_fgiic_suratjalan_date9');
$_datamodel['tkb_fgiic_suratjalan_no10'] = $this->request->getVar('tkb_fgiic_suratjalan_no10');
$_datamodel['tkb_fgiic_suratjalan_date10'] = $this->request->getVar('tkb_fgiic_suratjalan_date10');
$_datamodel['tkb_fgiic_pob'] = $this->request->getVar('tkb_fgiic_pob');
$_datamodel['tkb_fgiic_parsial'] = $this->request->getVar('tkb_fgiic_parsial');
if(isset($_POST['kirim'])){
$_datamodel['tkb_fgiic_status'] = 1;
$_datamodel['tkb_fgiic_status_mkt'] = 0;
$_datamodel['tkb_fgiic_status_sc'] = 1;
}
$item = count($this->request->getVar('barang'));
$brg = $this->request->getVar('barang');
$n = $this->request->getVar('nilai');
$ma = $this->request->getVar('matauang');
$na = $this->request->getVar('nilaiasli');
$b = $this->request->getVar('bulumata');
$qbm = $this->request->getVar('qty_bm');
$tkb_fgiic_item = array();
$sum = 0;
for ($j=0; $j < $item; $j++) {
$valqbm = str_replace('.',"",$qbm[$j]);
$data = array(
'barang' => json_decode($brg[$j]),
'nilai' => $n[$j],
'matauang' => $ma[$j],
'nilaiasli' => $na[$j],
'bulumata' => $b[$j],
'qty_bm' => $valqbm,
);
array_push($tkb_fgiic_item, $data);
}
$_datamodel['tkb_fgiic_item'] = json_encode($tkb_fgiic_item);
try {
if (!$mdl->update($id, $_datamodel)) {
throw new \CodeIgniter\Database\Exceptions\DatabaseException();
} else {
$this->setMessage(false, true, $this->msgLib->scs_edit());
}
} catch (Exception $e) {
$this->setMessage(true, false, $this->msglib->err_edit());
}
}
}
$this->render->viewAdmin($this->content_views['form_edit_view'], $this);
} else if ($state == 'delete') {
$this->view_data['state'] = 'delete';
$mdl = $this->myLib->getNewModel($this->models['base_model']);
$_data = $mdl->find($id);
if($_data->tkb_fgiic_status != 0){
$json = json_decode($_data->tkb_fgiic_item);
foreach($json as $k){
$brg = $k->barang;
$n = $k->nilai;
// $b = $k->bulumata;
$qbm = $k->qty_bm;
if(!empty($brg)){
//update pengiriman
$db = \Config\Database::connect();
$jsonId = json_encode(['id' => (string)$id]);
$escaped = $db->escape($jsonId); // hasilnya => '{"id":"4"}'
$kirimBarang = new \App\Models\KirimBarangPro();
$_kirimBarang = $kirimBarang
->where("JSON_CONTAINS(tkb_fgiic_id, $escaped)", null, false)
->orderBy('tkb_pro_id', 'ASC')
->findAll();
$savedBm = [];
foreach ($_kirimBarang as $d) {
$jsons = json_decode($d->tkb_pro_item);
$updatedItems = [];
foreach ($jsons as $j) {
$i = $j->item;
$b = $j->bulumata;
$qty = $j->qty;
$qty_bm = $j->qty_bm;
$p = $j->pob;
$old_qty_kirim = $j->qty_kirim;
$new_qty_kirim = $old_qty_kirim; // default sama
foreach ($brg as $h) {
if ($h->tkb_pro_id == $d->tkb_pro_id && $i == $h->item && $b == $h->bulumata) {
$new_qty_kirim = max(0, $old_qty_kirim - $h->qty);
// update stok
$stok = new \App\Models\MasterStok();
$dtm = [
'mb_id' => $h->item,
'ms_pob' => $_data->tkb_fgiic_pob,
'ms_stok_fgi' => (int)$h->qty,
'ms_alasan' => 'canceled transaction',
];
$stok->save($dtm);
// update stok bulumata (hanya sekali per kombinasi unik)
$stokbm = new \App\Models\MasterStokbulumata();
$key = $b . '-' . $qbm . '-' . $p;
if (!isset($savedBm[$key])) {
$datamodelbm = [
'mbm_id' => $b,
'msb_stok' => (int)$qbm,
'msb_pob' => $_data->tkb_fgiic_pob,
'msb_alasan' => 'canceled transaction',
];
$stokbm->save($datamodelbm);
$savedBm[$key] = true;
}
}
}
$updatedItems[] = [
'item' => $i,
'qty' => $qty,
'qty_kirim' => $new_qty_kirim,
'qty_bm' => $qty_bm,
'pob' => $p,
'bulumata' => $b,
];
}
// log hasil akhir per tkb_pro_id
// log_message('alert', '$d->tkb_pro_id '.$d->tkb_pro_id);
// log_message('alert', 'data updated '.json_encode($updatedItems));
// update ke DB
$_datamodels = [
'tkb_pro_item' => json_encode($updatedItems),
'tkb_pro_iskirim' => 0
];
$kirimBarang->update($d->tkb_pro_id, $_datamodels);
}
}
}
//end update pengiriman
}
$this->view_data['upload_data'] = $this->upload_data;
try {
if (!$mdl->delete($id)) {
throw new \CodeIgniter\Database\Exceptions\DatabaseException();
} else {
$this->setMessage(false, true, $this->msgLib->scs_del());
}
} catch (Exception $e) {
$this->setMessage(false, true, $this->msglib->err_del());
}
$this->render->viewAdmin($this->content_views['form_delete_view'], $this);
// 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 upload_file($name)
{
$file = $this->request->getFile($name);
$newName = $file->getRandomName();
$file->move(WRITEPATH.'uploads', $newName);
$inputFileName = WRITEPATH.'uploads/' . $newName;
log_message('alert',$inputFileName);
return $inputFileName;
}
}