ria/app/Views/editRawmaterial.php
2025-03-20 17:51:44 +05:30

571 lines
29 KiB
PHP
Executable File

<?php
$MaterialCode = '';
$MaterialName = '';
$MaterialType = '';
$MaterialCategory = '';
$UOM = '';
$remarks = '';
$HSNcode = '';
$IsActive = '';
$openstock = '';
$date = '';
$reorder = '';
$total = 0;
$date_today = date("Y-m-d");
//print_r($materialDetails);
if (!empty($materialDetails)) {
foreach ($materialDetails as $MD) {
$MaterialCode = $MD->MaterialCode;
$MaterialName = $MD->MaterialName;
$MaterialType = $MD->MaterialType;
$MaterialCategory = $MD->Category;
$UOM = $MD->UOM;
$remarks = $MD->Remarks;
$HSNcode = $MD->HSNCODE;
$material_rate = $MD->material_rate;
$openstock = $MD->stock;
$date = $MD->stockdate;
$reorder = $MD->reorder;
$chk = $MD->IsActive;
$IsActive = ($chk == 1) ? 'checked' : '';
}
}
$Average_Price = $avg_price[0]['avg_rate'];
$Average_Value = number_format($Average_Price, 2, '.', '');
if (!empty($currentstock)) {
$currentstock = $currentstock[0]['remainingqty'];
$x = $openstock;
$y = $currentstock;
$todaydateyear = format_date($date_today, 0, "Y");
$todaydatemonth = format_date($date_today, 0, 'm');
$todaydatedate = format_date($date_today, 0, 'd');
$openstockdateyear = format_date($date, 0, 'Y');
$parts = explode('-', $date);
$openstockdatemonth = $parts[1] ?? 0;
$openstockdatedate = $parts[2] ?? '';
if ($openstockdateyear == $todaydateyear) {
if ($openstockdatemonth <= 03) {
$total = $y == '' ? '0' : $y;
} else {
$total = (int)$x + (int)$y;
}
} else if ($openstockdateyear < $todaydateyear) {
//$total= $y;
$total = $y == '' ? '0' : $y;
} else if ($openstockdateyear > $todaydateyear) {
$total = $x + $y;
}
}
?>
<?php
if ($total <= $reorder) {
echo '<script type="text/javascript">alert("Current Stock Low ");</script>';
}
?>
<script>
$(function() {
$("#Date").datepicker({
//minDate :'now',
//maxDate : 'now',
format: 'dd-mm-yyyy',
changeMonth: true,
changeYear: true,
yearRange: '-100:+1',
orientation: 'bottom',
});
});
</script>
<!-- <style>
.autocomplete-suggestion {
cursor: pointer;
background-color: skyblue;
/* background-color: darkgrey; */
outline: 1px solid slategrey;
}
</style>
<script type="text/javascript" src="<?php echo base_url(); ?>public/assets/Autocomplete/jquery.autocomplete.js"></script> -->
<div class="content-page">
<div class="content">
<!-- Start Content-->
<div class="container-fluid">
<!-- Start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box page-title-box-alt">
<h4 class="page-title">Edit Material - <?php echo $MaterialCode; ?> Details</h4>
<button type="button" class="btn btn-secondary" onclick="window.location.href='<?= base_url() ?>rawmaterialListing'">
<span class="bold">Cancel</span>
</button>
</div>
</div>
</div>
<!-- End page title -->
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<form role="form" action="<?php echo base_url() ?>rawmaterialdetails/editRawmaterial" method="post" id="editRawmaterial">
<div class="box-body">
<!-- Material Information -->
<div class="row">
<div class="col-md-12">
<div class="form-row mb-3">
<div class="col-md-3">
<div class="form-group">
<label for="RMcode">Material Code</label>
<input type="text" class="form-control" readonly id="RMcode" name="RMcode" maxlength="255" value="<?php echo $MaterialCode; ?>">
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label for="MaterialName">Material Name <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="MaterialName" name="MaterialName" maxlength="255" value="<?php echo htmlentities($MaterialName); ?>" required>
<input type="hidden" class="form-control" id="MaterialCode" name="MaterialCode" maxlength="255" value="<?php echo $MaterialCode; ?>">
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label for="MaterialType">Material Type <span class="text-danger">*</span></label>
<select class="form-control select2" id="MaterialType" name="MaterialType" required>
<?php
if (!empty($material)) {
foreach ($material as $SID) {
?>
<option value="<?= $SID->ConfigValue ?>" <?php if ($MaterialType === $SID->ConfigValue) echo "selected"; ?>>
<?php echo $SID->ConfigValue ?>
</option>
<?php
}
}
?>
</select>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label for="MaterialCategory">Material Category
<span class="badge">*</span></label>
<select class="form-control select2" id="MaterialCategory" name="MaterialCategory" required>
<?php
if (!empty($materialCategoryList)) {
foreach ($materialCategoryList as $SID) {
?>
<option value="<?php echo $SID['Key'] ?>" <?php if ($MaterialCategory === $SID['Key']) echo "selected"; ?>>
<?php echo $SID['ConfigValue'] ?>
</option>
<?php
}
}
?>
</select>
</div>
</div>
</div>
<div class="form-row mb-3">
<div class="col-md-3">
<div class="form-group">
<label for="UOM">Unit of Measurement <span class="text-danger">*</span></label>
<select class="form-control select2" id="UOM" name="UOM" required>
<option value="<?php echo $UOM; ?>"><?php echo $UOM; ?></option>
<?php
if (!empty($UOMList)) {
foreach ($UOMList as $UM) {
?>
<option value="<?php echo $UM->ConfigValue; ?>"><?php echo $UM->ConfigValue ?></option>
<?php
}
}
?>
</select>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label for="HSNcode">HSN Code</label>
<input type="text" class="form-control" id="HSNcode" name="HSNcode" maxlength="8" value="<?php echo $HSNcode; ?>" onkeypress="return isNumberKey(event)">
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label for="Rate">Rate<span class="badge">*</span></label>
<input type="text" class="form-control" id="material_rate" onkeypress="return isNumberKey(event)" value="<?php echo $material_rate; ?>" name="material_rate" required>
</div>
</div>
<?php if ($openstock != "") { ?>
<div class="col-md-3">
<div class="form-group">
<label for="openstock">Opening Stock</label>
<input type="text" class="form-control" id="openstock" name="openstock" value="<?php echo $openstock; ?>" maxlength="255">
</div>
</div>
<?php } else { ?>
<div class="col-md-3">
<div class="form-group">
<label for="openstock">Opening Stock</label>
<input type="text" class="form-control" id="openstock" name="openstock" maxlength="255">
</div>
</div>
<?php } ?>
</div>
<div class="form-row mb-3">
<?php if ($date != "") { ?>
<div class="col-md-3">
<div class="form-group">
<label>Open Stock Date</label>
<?php
$formattedDate = get_date_time_dynamical_format('Y-m-d','d-m-Y',"$date");
$data = array('name' => 'Date', 'value' => set_value('Date',$formattedDate), 'id' => 'Date', 'class' => 'form-control', 'onkeypress' => 'return false;','readonly'=>true, 'autocomplete'=>'"off"');
echo form_input($data);
?>
<!-- <input type="text" name="Date" id="Date" class="form-control" value="<?php echo $date; ?>" readonly> -->
</div>
</div>
<?php } else { ?>
<div class="col-md-3">
<div class="form-group">
<label>Open Stock Date</label>
<?php
$data = array('name' => 'Date', 'value' => set_value('Date'), 'id' => 'Date', 'class' => 'form-control', 'onkeypress' => 'return false;', 'autocomplete'=>'"off"');
echo form_input($data);
?>
<!-- <input type="text" name="Date" id="Date" class="form-control" readonly> -->
</div>
</div>
<?php } ?>
<div class="col-md-3">
<div class="form-group">
<label for="reorder">Reorder Level</label>
<input type="text" class="form-control" id="reorder" name="reorder" value="<?php echo $reorder; ?>" maxlength="255">
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label for="currentstock">Current Stock</label>
<input type="text" class="form-control" id="currentstock" name="currentstock" readonly value="<?php echo $total; ?>" maxlength="255">
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label for="avg_price">Average Price</label>
<input type="text" class="form-control" id="avg_price" name="avg_price" readonly value="<?php echo $Average_Value ?>" maxlength="255">
</div>
</div>
</div>
<div class="form-row mb-3">
<div class="col-md-3">
<div class="form-group">
<label for="remarks">Remarks</label>
<input type="text" class="form-control" id="remarks" name="remarks" maxlength="255" value="<?php echo $remarks; ?>">
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label class="switch">
<input type="checkbox" id="isactive" name="isactive" <?php echo $IsActive; ?> />
<span class="slider"></span>
</label>
<label class="mt-4">Is Active</label>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
</div>
</div>
</div>
<br>
<h3 align="center">Material Rate History</h3>
<br>
<?php
if(empty($materialRateHistory)){
echo "* No Material Rate History Available For Material Created Before April-2025";
}else{ ?>
<div class="form-row mb-3 table-responsive">
<table id="materialRateHistoryTableId" class="table table-striped">
<thead>
<th style="text-align: center !important;">Rate New Value</th>
<th style="text-align: center !important;">Rate Old Value</th>
<th style="text-align: center !important;">Rate Updated By</th>
<th style="text-align: center !important;">Rate Updated Date </th>
<th style="text-align: center !important;">Rate Updated Time</th>
</thead>
<tbody>
<?php
foreach ($materialRateHistory as $mrh) {
?>
<tr>
<td align="center"><b><?= $mrh['new_value'] ?></b></td>
<td align="center"><b><?= $mrh['old_value'] ?></b></td>
<td align="center"><b><?= $mrh['name'] ?></b></td>
<td align="center"><?= date('d-m-Y', strtotime($mrh['updated_at'])) ?></td>
<td align="center"><?= date('h:i A', strtotime($mrh['updated_at'])) ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
<?php
}
?>
</div>
</div>
</div>
<div class="box-footer text-right">
<button type="button" class="btn btn-secondary" onclick="window.location.href='<?= base_url() ?>rawmaterialListing'">
<span class="bold">Cancel</span>
</button>
<input type="button" id="editRawMaterialBtnId" class="btn btn-success" value="Submit" />
</div>
</form>
</div><!-- /.card-body -->
</div><!-- /.card -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.container-fluid -->
</div><!-- /.content -->
</div><!-- /.content-page -->
<!-- modal -->
<div class="modal fade" id="addMaterialCaterogyModal" tabindex="-1" aria-labelledby="addMaterialCaterogyModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="addMaterialCaterogyModalLabel">Add Material Category</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form id="addMaterialCategoryForm">
<div class="form-group">
<label for="materialCategoryInput">Material Category</label>
<input type="text" class="form-control" id="materialCategoryInput" placeholder="Enter material category">
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary" onclick="addMaterialCategory()">Save Category</button>
</div>
</div>
</div>
</div>
<script src="<?php echo base_url(); ?>public/assets/js/editUser.js" type="text/javascript"></script>
<script>
$(document).ready(function() {
$("#UOM").select2();
$("#MaterialType").select2();
$("#MaterialCategory").select2();
/** ---- auto search code -------- */
// $('#MaterialCategory').autocomplete({
// onSearchStart: function(query) {
// $('#MaterialCategory').autocomplete("option", "minLength", 0);
// },
// serviceUrl: "<?php echo base_url(); ?>rawmaterialdetailsautocomplete",
// onSelect: function(suggestion) {
// var data = suggestion.ConfigValue;
// var selectedvalue = $('input[name=MaterialCategory]').val();
// }
// });
});
function onlyAlphabets(evt) {
var charCode;
if (window.event)
charCode = window.event.keyCode; //for IE
else
charCode = evt.which; //for firefox
if (charCode == 32) //for &lt;space&gt; symbol
return true;
if (charCode > 31 && charCode < 65) //for characters before 'A' in ASCII Table
return false;
if (charCode > 90 && charCode < 97) //for characters between 'Z' and 'a' in ASCII Table
return false;
if (charCode > 122) //for characters beyond 'z' in ASCII Table
return false;
return true;
}
function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode != 46 && charCode > 31 &&
(charCode < 48 || charCode > 57))
return false;
return true;
}
function onlyAlphabets(evt) {
var charCode;
if (window.event)
charCode = window.event.keyCode; //for IE
else
charCode = evt.which; //for firefox
if (charCode == 32) //for &lt;space&gt; symbol
return true;
if (charCode > 31 && charCode < 65) //for characters before 'A' in ASCII Table
return false;
if (charCode > 90 && charCode < 97) //for characters between 'Z' and 'a' in ASCII Table
return false;
if (charCode > 122) //for characters beyond 'z' in ASCII Table
return false;
return true;
}
$('#editRawMaterialBtnId').click(function() {
var materialName = $('#MaterialName').val();
var materialCode = $('#RMcode').val();
var materialCategory = $('#MaterialCategory').val();
var materialType = $('#MaterialType').val();
if (materialName == '') {
return;
}
var material = materialName.replace(/ /g, '');
$('#loader').show();
$.ajax({
data: {
materialCode,
materialName,
materialCategory
},
type: "POST",
url: "<?php echo base_url(); ?>materialExist",
success: function(data) {
if (data && data.length >= 1) {
$('#loader').hide();
let message = "";
if (data[0]?.IsActive == 1) {
message = "Material name already exists!\n\n";
} else {
message = "Material name already exists in the deleted section!\n\n";
}
let related_name = "";
$.each(data, function(i, obj) {
related_name += obj.MaterialCode + " - " + obj.MaterialName + " - " + obj.MaterialType + " - " + obj.CategoryName + "\n";
});
message += "'" + materialName + "' - related materials are:\n\n" + related_name;
alert(message);
$("#MaterialName").val('');
$("#MaterialName").focus();
} else {
$('#loader').hide();
console.log("working")
$('#editRawmaterial').submit();
}
},
error: function() {
$('#loader').hide();
alert("Error Occur");
},
complete: function() {
$('#loader').hide();
console.log("Ajax completed..!!");
}
});
});
</script>
<script>
function addMaterialCategory() {
$('#materialCategoryInput').val()
let materialCategory = $('#materialCategoryInput').val().trim();
if (materialCategory.length <= 2) {
alert('Material Category should have more than 2 letters.');
return false;
}
if (materialCategory.length > 20) {
alert('Material Category should have fewer than 20 letters.');
return false;
}
}
</script>
<script>
$(document).on('keydown', function(event) {
if (event.key === 'Enter') {
event.preventDefault(); // Prevent default Enter key behavior
}
});
</script>