Untitled
unknown
php
5 years ago
18 kB
31
Indexable
<link rel="stylesheet" href="<?= getAssetURL() ?>adminLTE/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css">
<link rel="stylesheet" href="<?= getAssetURL() ?>adminLTE/bower_components/jquery-ui/themes/base/jquery-ui.css">
<style>
.example-modal .modal {
position: relative;
top: auto;
bottom: auto;
right: auto;
left: auto;
display: block;
z-index: 1;
}
.example-modal .modal {
background: transparent !important;
}
.fa-eye::before {
font-size: 25px;
}
.grey-header {
background-color: #d4d9dd;
}
.right-position {
/*text-align: right;*/
float: right;
}
.left-position {
/*text-align: left;*/
float: left;
}
/* .cellRed {
background-color: red;
color: white;
}
.cellLightGray {
background-color: lightgray;
color: black;
}
.cellOrange {
background-color: darkorange;
color: white;
}
.cellGreen {
background-color: darkgreen;
color: white;
}*/
.cellRed {
color: darkred;
font-weight: bold;
}
.cellLightGray {
font-weight: bold;
color: darkgray;
}
.cellOrange {
font-weight: bold;
color: darkorange;
}
.cellGreen {
font-weight: bold;
color: darkgreen;
}
.radio-toolbar {
margin: auto;
margin-top: 10px;
margin-left: 40%;
}
.radio-toolbar input[type="radio"] {
opacity: 0;
position: fixed;
width: 0;
}
.radio-toolbar label {
display: inline-block;
background-color: #ddd;
padding: 10px 20px;
font-family: sans-serif, Arial;
font-size: 16px;
border: 2px solid #444;
border-radius: 4px;
}
.radio-toolbar label:hover {
background-color: #dfd;
}
.radio-toolbar input[type="radio"]:focus + label {
border: 2px dashed #444;
}
.radio-toolbar input[type="radio"]:checked + label {
background-color: #bfb;
border-color: #4c4;
}
</style>
<script src="<?= getAssetURL() ?>adminLTE/bower_components/datatables.net/js/jquery.dataTables.min.js"></script>
<script src="<?= getAssetURL() ?>adminLTE/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js"></script>
<!--<script src="https://code.jquery.com/jquery-migrate-3.0.1.js"></script>-->
<script src="<?= getAssetURL() ?>adminLTE/bower_components/jquery-ui/jquery-ui.min.js"></script>
<script>
var table;
$(function() {
var BASE_URL = '<?= BASE_URL ?>';
$('#insertNewUr').on('click', function() {
alert('insertNewUr');
});
$('#createPR').on('click', function() {
var value = $(this).val();
// alert(value);
});
filldatatables();
});
function filldatatables(){
table = $('#urList').DataTable({
'paging': false,
'pageLength': 50,
'lengthChange': false,
'searching': false,
'order': [],
'info': true,
'autoWidth': true,
'alengthMenu': [
[-1, 25, 50, 100],
['All', 25, 50, 100]
],
'sScrollX': '100%',
'sScrollXInner': '100%',
"columnDefs": [
{
"targets": [ 8 ],
"visible": false
},
{
"targets": [ 9 ],
"visible": false
},
{
"targets": [ 10 ],
"visible": false
},
{
"targets": [ 11 ],
"visible": false
}
]
});
}
</script>
<!-- Content Wrapper. Contains page content -->
<div class="content-wrapper" id="purchaseListBody">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1>
Picking Slip
<small>Stock Analysis</small>
</h1>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-dashboard"></i> Home</a></li>
<li class="active">PS - Stock Analysis</li>
</ol>
<hr />
</section>
<section class="content">
<div class="row">
<div class="col-xs-12">
<div class="box box-primary">
<form method="post" action="<?= BASE_URL ?>pickingSlip/createFromPS">
<div class="radio-toolbar">
<input type="radio" id="radioPR" name="radioStockAnalysis" value="PR">
<label for="radioPR">Purchase Request</label>
<input type="radio" id="radioGI" name="radioStockAnalysis" value="GI">
<label for="radioGI">Good Issue</label>
</div>
<div class="box-header ">
<h3 class="box-title"></h3>
<div class="left-position">
<!-- <btn class="btn btn-success" id="insertNewUr" >Insert New UR</btn>-->
PS Number : <?= $psNo ?>
</div>
<div class="right-position">
<button type="submit" class="btn btn-success rowPR" style="display:none" id="createFromPS" name="action" value="createPR">Create Purchase Request</button> <!-- style="visibility:hidden" -->
<button type="submit" class="btn btn-warning rowGI" style="display:none" id="createGI" name="action" value="createGI">Create Goods Issued</button>
<input type="hidden" name="psNumber" value="<?= $psNo ?>">
</div>
</div>
<div class="box-header">
<table id="urList" class="table table-bordered table-striped">
<thead>
<tr>
<th>Material Code<br />Part Code</th>
<th>Description</th>
<th>Brand</th>
<th>Request</th>
<th>SOH</th>
<th>Available</th>
<th>GIT</th>
<th>UOM</th>
<th>History PR</th>
<th>Purchase Req</th>
<th>History GI</th>
<th>Goods Issued</th>
</tr>
</thead>
<tbody>
<?php
//$count = 0;
// if($resultApi['code'] == 200) {
if ($code == 200) {
// $dataDecode = json_decode($data,true);
$count = 0;
foreach ($data as $i => $ra) {
// $docDate = date('j F Y',strtotime($ra['doc_date']));
$partCode = $ra['part_code'];
if (count(explode(' ', $partCode)) > 1) {
$partCodeArray = explode(' ', $partCode);
$partCode = implode('|-----|', $partCodeArray);
}
$partCode = str_replace(".", "|", $partCode);
$partCode = str_replace(",", "|COMMASIGN|", $partCode);
// $partCode = str_replace('"', '|QUOTESIGN|', $partCode);
// $partCode = str_replace('(', '|KURUNGBUKASIGN|', $partCode);
// $partCode = str_replace(')', '|KURUNGTUTUPSIGN|', $partCode);
// $partCode = str_replace('@', '|ATSIGN|', $partCode);
$qtyReq = $ra['part_qty'];
$qtyPR = $ra['QtyPR'];
$qtyGI = $ra['Qtygs'];
$disable = '';
if ($qtyReq == ($qtyPR + $qtyGI) || $qtyReq < ($qtyPR + $qtyGI)) {
$disable = 'disabled';
} else {
$count = $count + 1;
}
$param = $ra['qtysoh'] . "--" . "detail[GI][" . $partCode . "]";
?>
<tr>
<td><?= $ra['part_code'] ?></td>
<td><?= $ra['part_desc'] ?></td>
<td><?= $ra['brand_name'] ?></td>
<td><?= number_format($ra['part_qty'],2) ?></td>
<td id="detail[GI][<?= $ra['qtysoh'] ?>]"><?= number_format($ra['qtysoh'],2) ?></td>
<td id="detail[GI][<?= $ra['qty_doc_avai'] ?>]"><?= number_format($ra['qty_doc_avai'],2) ?></td>
<td><?= number_format($ra['qtygit'],0) ?></td>
<td><?= $ra['part_unit'] ?></td>
<td><?= number_format($ra['QtyPR'],2) ?></td>
<td><input type="number" name="detail[PR][<?= $partCode ?>]" class="inpt_pr" id="detail[PR][<?= $partCode ?>]" min="0" onkeypress="return hanyaAngka(event)" onchange="checkQtyPR(<?= $ra['qtysoh'] . ",'" . $partCode . "','" . $ra['Qtygs'] . "','" . $ra['part_qty'] . "','" . $ra['QtyPR'] . "'" ?>)" <?php echo $disable; ?>></td>
<td><?= number_format($ra['Qtygs'],2) ?></td>
<td><input type="number" name="detail[GI][<?= $partCode ?>]" class="inpt_gi" id="detail[GI][<?= $partCode ?>]" min="0" onkeypress="return hanyaAngka(event)" onchange="checkQtyGI( <?= $ra['qtysoh'] . ",'" . $partCode . "','" . $ra['Qtygs'] . "','" . $ra['part_qty'] . "','" . $ra['QtyPR'] . "'" ?>)" <?php echo $disable; ?>></td>
</tr>
<?php }
}
if ($count <= 0) {
?>
<script>
document.getElementById('createFromPS').disabled = true;
document.getElementById('createGI').disabled = true;
</script>
<?php
} ?>
</tbody>
</table>
<div class="col-md-3 col-xs-12"> </div>
<div class="col-md-3 col-xs-12"> </div>
</div>
<!-- /.box-header -->
<div class="box-body" id="fullTable">
</div>
<!-- /.box-body -->
</form>
</div>
<!-- /.box -->
</div>
</div>
</section>
</div>
<script type="text/javascript">
$(document).ready(function() {
$(window).keydown(function(event){
if(event.keyCode == 13) {
event.preventDefault();
return false;
}
});
});
function checkQtyPR(a, b, c, d, e) {
var idQty = b;
var qtyReq = d;
var qtyPRReq = e;
var strPRInput = 'detail[PR][' + idQty + ']';
var qtyPRInput = document.getElementById(strPRInput).value; // Input PR
var qtyHistori = Number(qtyPRReq); // Histori PR
var totalQty = Number(qtyPRInput) + Number(qtyPRReq);
var maxQty = Number(qtyReq) - Number(qtyPRReq);
if (totalQty <= qtyReq) {
document.getElementById('createFromPS').disabled = false;
document.getElementById('createGI').disabled = false;
} else {
alert("Anda sudah melakukan transaksi histori sebanyak " + qtyHistori + ". Maksimal adalah " + maxQty);
document.getElementById(strPRInput).value = "";
document.getElementById('createFromPS').disabled = true;
return false;
}
}
function checkQtyGI(a, b, c, d, e) {
var qtyAvailable = a;
var idQty = b;
var qtyHisGI = c;
var strInput = 'detail[GI][' + idQty + ']';
var qtyInput = document.getElementById(strInput).value; //Input GI
var qtyHistori = Number(qtyHisGI); // Histori GI
var totalQty = Number(qtyInput) + Number(qtyHisGI) ;
if (qtyInput > qtyAvailable) {
alert("Anda memasukan angka melebihi nilai Stock on Hand");
document.getElementById(strInput).value = "";
document.getElementById('createGI').disabled = true;
return false;
} else {
document.getElementById('createGI').disabled = false;
}
}
// function checkQty(a, b, c, d, e) {
// var qtyAvailable = a;
// var idQty = b;
// var qtyHisGI = c;
// var qtyReq = d;
// var qtyPRReq = e;
// var strInput = 'detail[GI][' + idQty + ']';
// var strPRInput = 'detail[PR][' + idQty + ']';
// var qtyPRInput = document.getElementById(strPRInput).value; // Input PR
// var qtyInput = document.getElementById(strInput).value; //
// var qtyHistori = Number(qtyPRReq) + Number(qtyHisGI); // Histori PR + Histori GI
// var totalQty = Number(qtyInput) + Number(qtyHisGI) + Number(qtyPRInput) + Number(qtyPRReq); // Number(qtyInput) +
// var maxQty = Number(qtyReq) - Number(qtyHisGI) - Number(qtyPRReq);
// if (totalQty <= qtyReq) {
// document.getElementById('createFromPS').disabled = false;
// document.getElementById('createGI').disabled = false;
// if (qtyInput > qtyAvailable) {
// alert("Anda memasukan angka melebihi nilai Stock on Hand");
// document.getElementById(strInput).value = "";
// // document.getElementById('createFromPS').disabled = true;
// document.getElementById('createGI').disabled = true;
// return false;
// } else {
// // document.getElementById('createFromPS').disabled = false;
// document.getElementById('createGI').disabled = false;
// }
// } else {
// alert("Anda sudah melakukan transaksi histori sebanyak " + qtyHistori + ". Maksimal adalah " + maxQty);
// // document.getElementById(strInput).value = "";
// document.getElementById('createFromPS').disabled = true;
// document.getElementById('createGI').disabled = true;
// return false;
// }
// }
function hanyaAngka(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode != 46 && charCode < 48 || charCode > 57))
return false;
return true;
}
$("#radioPR").click(function()
{
var x = document.getElementsByClassName("inpt_gi");
for(var n = 0; n < x.length; n++) {
x[n].value = "";
}
var divsToHide = document.getElementsByClassName("rowPR"); //divsToHide is an array
for(var i = 0; i < divsToHide.length; i++){
divsToHide[i].style.display = "block";
}
var divsToHide = document.getElementsByClassName("rowGI"); //divsToHide is an array
for(var i = 0; i < divsToHide.length; i++){
divsToHide[i].style.display = "none";
}
table.columns( [8,9] ).visible( true );
table.columns( [10,11] ).visible( false );
});
$("#radioGI").click(function(){
var x = document.getElementsByClassName("inpt_pr");
for(var n = 0; n < x.length; n++) {
x[n].value = "";
}
var divsToHide = document.getElementsByClassName("rowPR"); //divsToHide is an array
for(var i = 0; i < divsToHide.length; i++){
divsToHide[i].style.display = "none";
}
var divsToHide = document.getElementsByClassName("rowGI"); //divsToHide is an array
for(var i = 0; i < divsToHide.length; i++){
divsToHide[i].style.display = "block";
}
table.columns( [8,9] ).visible( false );
table.columns( [10,11] ).visible( true );
});
</script>
<!-- /.row -->
<!-- ."---detail[GI][".$partCode."]" -->Editor is loading...