|
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.6/Controllers/Pro/ |
Upload File : |
<?php
namespace App\Controllers\Pro;
use \App\Controllers\Ps\PS_Controller;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
use App\Libraries\Ps\Mylibpublic;
class Kirimbarangpro 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, 'KirimBarangPro');
$this->validation_input = $this->validation->setRules([
"tkb_pro_status" => [
'label' => 'Status',
'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\KirimBarangPro();
$pagination = $dtl->where('deleted_at', null)
// ->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 = '')
{
$id = $this->myLib->reveal_id($id);
if ($id == 'override404') {
return redirect()->route('override404');
}
$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();
$fpro = new \App\Models\KirimBarangIc();
$this->view_data['_fpro'] = $fpro->where('deleted_at', null)->findAll();
$bulumata = new \App\Models\MasterBulumata();
$this->view_data['_bulumata'] = $bulumata->where('deleted_at', null)->findAll();
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_pro_fpro_no'] = $this->request->getVar('tkb_pro_fpro_no');
$_datamodel['tkb_pro_fpro_date'] = $this->request->getVar('tkb_pro_fpro_date');
$_datamodel['tkb_pro_status'] = 0;
$_datamodel['tkb_pro_iskirim'] = 0;
if(isset($_POST['kirim'])){
$_datamodel['tkb_pro_status'] = 1;
$_datamodel['tkb_pro_status_ic'] = 0;
}
$item = count($this->request->getVar('item'));
$i = $this->request->getVar('item');
$q = $this->request->getVar('qty');
$qbm = $this->request->getVar('qty_bm');
$p = $this->request->getVar('pob');
$b = $this->request->getVar('bulumata');
$tkb_pro_item = array();
$sum = 0;
for ($j=0; $j < $item; $j++) {
$val = str_replace('.',"",$q[$j]);
$valbm = str_replace('.',"",$qbm[$j]);
$data = array(
'item' => $i[$j],
'qty' => $val,
'qty_kirim' => 0,
'qty_bm' => $valbm,
'pob' => $p[$j],
'bulumata' => $b[$j],
);
array_push($tkb_pro_item, $data);
}
$_datamodel['tkb_pro_item'] = json_encode($tkb_pro_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']);
$_datamodel['tkb_pro_fpro_no'] = $this->request->getVar('tkb_pro_fpro_no');
$_datamodel['tkb_pro_fpro_date'] = $this->request->getVar('tkb_pro_fpro_date');
$_datamodel['tkb_pro_status'] = 0;
$_datamodel['tkb_pro_iskirim'] = 0;
if(isset($_POST['kirim'])){
$_datamodel['tkb_pro_status'] = 1;
$_datamodel['tkb_pro_status_ic'] = 0;
}
$item = count($this->request->getVar('item'));
$i = $this->request->getVar('item');
$q = $this->request->getVar('qty');
$qbm = $this->request->getVar('qty_bm');
$p = $this->request->getVar('pob');
$b = $this->request->getVar('bulumata');
$tkb_pro_item = array();
$sum = 0;
for ($j=0; $j < $item; $j++) {
$val = str_replace('.',"",$q[$j]);
$valbm = str_replace('.',"",$qbm[$j]);
$data = array(
'item' => $i[$j],
'qty' => $val,
'qty_kirim' => 0,
'qty_bm' => $valbm,
'pob' => $p[$j],
'bulumata' => $b[$j],
);
array_push($tkb_pro_item, $data);
}
$_datamodel['tkb_pro_item'] = json_encode($tkb_pro_item);
if(isset($_POST['kirim'])){
$_datamodel['tkb_pro_status'] = 1;
$_datamodel['tkb_pro_status_ic'] = 0;
for ($j=0; $j < $item; $j++) {
$val = str_replace('.',"",$q[$j]);
$stok = new \App\Models\MasterStok();
$datamodel = array(
'mb_id' => $i[$j],
'ms_stok_wip_transit' => (int)$val,
);
$stok->save($datamodel);
}
}
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') {
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 cekstok(){
if(isset($_POST)){
$id=$_POST['id'];
$brg = new \App\Models\MasterStok();
$_brg = $brg->get_sum_stok_wip_n_transit($id);
$listKirim = new \App\Models\KirimBarangPro();
$_listKirim = $listKirim->where('tkb_pro_status', 0)->findAll();
$decStok = 0;
$stok = $_brg->stok;
foreach($_listKirim as $ls){
$json = json_decode($ls->tkb_pro_item);
foreach($json as $j){
$i = $j->item;
$q = $j->qty;
if($id == $i){
$decStok += (int)$q;
}
}
}
$stok -= $decStok;
if ($stok != 0) {
echo json_encode(array(
"statusCode"=>200,
"stok"=>$stok
));
} else {
echo json_encode(array(
"statusCode"=>200,
"stok"=>0
));
}
}
}
public function getliststok(){
if(isset($_POST)){
$items=$_POST['items'];
$qtys=$_POST['qtys'];
$brg = new \App\Models\MasterBarang();
$_brg = $brg->where('deleted_at', null)->findAll();
$data = '';
foreach ($_brg as $d) {
$barang = new \App\Models\MasterStok();
$_barang = $barang->get_sum_stok_wip_n_transit($d->mb_id);
$stok = $_barang->stok ?? 0;
$decStok = 0;
if(is_array($items)){
for ($i=0; $i <count($items) ; $i++) {
if($items[$i] == $d->mb_id){
$stok -= (int)$qtys[$i];
}
}
}
$listKirim = new \App\Models\KirimBarangPro();
$_listKirim = $listKirim->where('tkb_pro_status', 0)->findAll();
foreach($_listKirim as $ls){
$json = json_decode($ls->tkb_pro_item);
foreach($json as $j){
$i = $j->item;
$q = $j->qty;
if($d->mb_id == $i){
$decStok += (int)$q;
}
}
}
$stok -= $decStok;
if($stok > 0){
$data .= '
<tr>
<td>'.$d->mb_kode.'</td>
<td>'.$d->mb_name.'</td>
<td>'.number_format($stok,0,",",".").'</td>
</tr>
';
}
}
echo json_encode(array(
"statusCode"=>200,
"data"=>$data
));
}
}
}