|
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.12/Controllers/Ic/ |
Upload File : |
<?php
namespace App\Controllers\Ic;
use \App\Controllers\Ps\PS_Controller;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
use App\Libraries\Ps\Mylibpublic;
class Kirimbarangfgiic 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_status" => [
'label' => 'Status',
'rules' => 'required',
],
"tkb_fgiic_fic_no" => [
'label' => 'Number',
'rules' => 'required',
],
"tkb_fgiic_fic_date" => [
'label' => 'Date',
'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('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();
$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_fgiic_pob'] = $this->request->getVar('tkb_fgiic_pob');
$_datamodel['tkb_fgiic_parsial'] = $this->request->getVar('tkb_fgiic_parsial');
$_datamodel['tkb_fgiic_fic_no'] = $this->request->getVar('tkb_fgiic_fic_no');
$_datamodel['tkb_fgiic_fic_date'] = $this->request->getVar('tkb_fgiic_fic_date');
$_datamodel['tkb_fgiic_status'] = 0;
$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');
$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],
'bulumata' => $b[$j],
'qty_bm' => $valqbm,
);
array_push($tkb_fgiic_item, $data);
}
$_datamodel['tkb_fgiic_item'] = json_encode($tkb_fgiic_item);
if(isset($_POST['kirim'])){
$_datamodel['tkb_fgiic_status'] = 1;
$_datamodel['tkb_fgiic_status_mkt'] = 0;
$_datamodel['tkb_fgiic_status_sc'] = 0;
//update pengiriman
$kirimBarang = new \App\Models\KirimBarangPro();
$_kirimBarang = $kirimBarang->where('deleted_at', null)->where('tkb_pro_iskirim', 0)->orderBy('tkb_pro_id', 'ASC')->findAll();
foreach ($_kirimBarang as $d) {
$json = json_decode($d->tkb_pro_item);
$temp_barang = array();
$flag = true;
foreach($json as $j){
$i = $j->item;
$b = $j->bulumata;
$qty = $j->qty;
$qty_bm = $j->qty_bm;
$p = $j->pob;
$qty_kirim = $j->qty_kirim;
for ($j=0; $j < $item; $j++) {
$valqbm = str_replace('.',"",$qbm[$j]);
$barang = json_decode($brg[$j]);
if(!empty($barang)){
foreach($barang as $h){
if($h->tkb_pro_id == $d->tkb_pro_id && $i == $h->item && $b == $h->bulumata){
//update qty_kirim
$qty_kirim = $qty_kirim + $h->qty;
// update stok
$stok = new \App\Models\MasterStok();
$dtm = array(
'mb_id' => $i,
'ms_stok_fgi_transit' => (int)$h->qty,
);
$stok->save($dtm);
$stokbm = new \App\Models\MasterStokbulumata();
$datamodelbm = array(
'mbm_id' => $b,
'msb_stok_transit' => (int)$valqbm,
'msb_pob' => $p,
);
$stokbm->save($datamodelbm);
}
}
}
}
$datas = [
'item' => $i,
'qty' => $qty,
'qty_kirim' => $qty_kirim,
'qty_bm' => $qty_bm,
'pob' => $p,
'bulumata' => $b,
];
array_push($temp_barang,$datas);
if($qty_kirim < $qty){
$flag = false;
}
}
if($flag){
$_datamodels['tkb_pro_iskirim'] = 1;
}else{
$_datamodels['tkb_pro_iskirim'] = 0;
}
$_datamodels['tkb_pro_item'] = json_encode($temp_barang);
$kirimBarangs = new \App\Models\KirimBarangPro();
$kirimBarangs->update($d->tkb_pro_id, $_datamodels);
// log_message('alert','id '.$d->tkb_pro_id);
// log_message('alert','data updated '.json_encode($temp_barang));
}
}
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_fgiic_pob'] = $this->request->getVar('tkb_fgiic_pob');
$_datamodel['tkb_fgiic_parsial'] = $this->request->getVar('tkb_fgiic_parsial');
$_datamodel['tkb_fgiic_fic_no'] = $this->request->getVar('tkb_fgiic_fic_no');
$_datamodel['tkb_fgiic_fic_date'] = $this->request->getVar('tkb_fgiic_fic_date');
$_datamodel['tkb_fgiic_status'] = 0;
$item = count($this->request->getVar('bulumata'));
$brg = $this->request->getVar('barang');
$n = $this->request->getVar('nilai');
$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],
'bulumata' => $b[$j],
'qty_bm' => $valqbm,
);
array_push($tkb_fgiic_item, $data);
}
$_datamodel['tkb_fgiic_item'] = json_encode($tkb_fgiic_item);
if(isset($_POST['kirim'])){
$_datamodel['tkb_fgiic_status'] = 1;
$_datamodel['tkb_fgiic_status_mkt'] = 0;
$_datamodel['tkb_fgiic_status_sc'] = 0;
//update pengiriman
$kirimBarang = new \App\Models\KirimBarangPro();
$_kirimBarang = $kirimBarang->where('deleted_at', null)->where('tkb_pro_iskirim', 0)->orderBy('tkb_pro_id', 'ASC')->findAll();
$qty_kirim = 0;
foreach ($_kirimBarang as $d) {
$json = json_decode($d->tkb_pro_item);
$temp_barang = array();
$flag = true;
foreach($json as $j){
$i = $j->item;
$b = $j->bulumata;
$qty = $j->qty;
$qty_bm = $j->qty_bm;
$p = $j->pob;
$qty_kirim = $j->qty_kirim;
for ($j=0; $j < $item; $j++) {
$valqbm = str_replace('.',"",$qbm[$j]);
$barang = json_decode($brg[$j]);
if(!empty($barang)){
foreach($barang as $h){
// if($h->tkb_pro_id == $d->tkb_pro_id && $i == $h->item){
if($h->tkb_pro_id == $d->tkb_pro_id && $i == $h->item && $b == $h->bulumata){
//update qty_kirim
$qty_kirim = $qty_kirim + $h->qty;
//update stok
$stok = new \App\Models\MasterStok();
$dtm = array(
'mb_id' => $i,
'ms_stok_fgi_transit' => (int)$h->qty,
);
$stok->save($dtm);
$stokbm = new \App\Models\MasterStokbulumata();
$datamodelbm = array(
'mbm_id' => $b,
'msb_stok_transit' => (int)$valqbm,
'msb_pob' => $p,
);
$stokbm->save($datamodelbm);
}
}
}
}
$datas = [
'item' => $i,
'qty' => $qty,
'qty_kirim' => $qty_kirim,
'qty_bm' => $qty_bm,
'pob' => $p,
'bulumata' => $b,
];
array_push($temp_barang,$datas);
if($qty_kirim < $qty){
$flag = false;
}
}
if($flag){
$_datamodels['tkb_pro_iskirim'] = 1;
}else{
$_datamodels['tkb_pro_iskirim'] = 0;
}
// log_message('alert','data updated '.json_encode($temp_barang));
$_datamodels['tkb_pro_item'] = json_encode($temp_barang);
$kirimBarangs = new \App\Models\KirimBarangPro();
$kirimBarangs->update($d->tkb_pro_id, $_datamodels);
}
}
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_fgi($id);
if ($_brg->stok != 0) {
echo json_encode(array(
"statusCode"=>200,
"stok"=>$_brg->stok
));
} else {
echo json_encode(array(
"statusCode"=>400,
"stok"=>0
));
}
}
}
public function cekstokbulumata(){
if(isset($_POST)){
$id=$_POST['id'];
$pob=$_POST['pob'];
$brg = new \App\Models\MasterStokbulumata();
$_brg = $brg->get_sum_stokbm_transit_pob($id,$pob);
if ($_brg->stok != 0) {
echo json_encode(array(
"statusCode"=>200,
"stok"=>$_brg->stok
));
} else {
echo json_encode(array(
"statusCode"=>400,
"stok"=>0
));
}
}
}
public function cekbarang(){
if(isset($_POST)){
$id=$_POST['id'];
$value=$_POST['value'];
$kirimBarang = new \App\Models\KirimBarangPro();
$_kirimBarang = $kirimBarang->where('deleted_at', null)->where('tkb_pro_iskirim', 0)->orderBy('tkb_pro_id', 'ASC')->findAll();
$bm = new \App\Models\MasterBulumata();
$_bm = $bm->where('mbm_id', $id)->first();
$konversi = $_bm->mbm_konversi ?? 1;
$flag = true;
$kirim = $value*$konversi;
$sisa_kirim = $value*$konversi;
$defParams = array();
$temp_barang_show = array();
$temp_barang_list = array();
log_message('alert','jml kirim '.$kirim);
foreach ($_kirimBarang as $d) {
if($flag){
$json = json_decode($d->tkb_pro_item);
foreach($json as $j){
$i = $j->item;
$b = $j->bulumata;
$qty = $j->qty;
$qty_bm = $j->qty_bm;
$p = $j->pob;
$qty_kirim = $j->qty_kirim;
if($qty_kirim < $qty){
if ($b == $id){
$sisaStok = $qty - $qty_kirim;//50
if($sisaStok >= $kirim){//stok lebih besar dari jml dikirim
$qty_kirim = (int)$qty_kirim + (int)$kirim; //disimpan untuk memotong qty_kirim
$data = array(
'tkb_pro_id' => $d->tkb_pro_id,
'item' => $i,
'bulumata' => $b,
'qty' => $kirim,
);
$barang = new \App\Models\MasterBarang();
$_barang = $barang->where('mb_id', $i)->where('deleted_at', null)->first();
$dl = array(
'brg' => $_barang->mb_kode,
'qty' => $kirim,
);
if($kirim > 0){
array_push($temp_barang_show,$data);
array_push($temp_barang_list,$dl);
}
$kirim = 0;
$flag = false;
} else{ //stok lebih kecil dari jml kirim
$kirim = $kirim-$sisaStok;
$qty_kirim = $qty_kirim + $sisaStok; //disimpan untuk memotong qty_kirim
$data = array(
'tkb_pro_id' => $d->tkb_pro_id,
'item' => $i,
'bulumata' => $b,
'qty' => $sisaStok,
);
$barang = new \App\Models\MasterBarang();
$_barang = $barang->where('mb_id', $i)->where('deleted_at', null)->first();
$dl = array(
'brg' => $_barang->mb_kode,
'qty' => $sisaStok,
);
if($sisaStok > 0){
array_push($temp_barang_show,$data);
array_push($temp_barang_list,$dl);
}
if($kirim <= 0){
$flag = false;
}
}
}
}
}
}
}
log_message('alert','temp data barang '.json_encode($temp_barang_list));
// log_message('alert','-------------------------------');
echo json_encode(array(
"statusCode"=>200,
"barang"=> json_encode($temp_barang_show),
"baranglist"=> json_encode($temp_barang_list)
));
}
}
}