gas stock module changes

This commit is contained in:
vadivel J 2024-11-05 18:01:58 +05:30
parent 088157dd4d
commit 439909fda0
2 changed files with 150 additions and 55 deletions

View File

@ -326,6 +326,48 @@ class StockController extends BaseController
}
public function updateBagStockDetails(){
$postData = $this->request->getPost();
$updateBagStockDetailsData = json_decode($postData['updateBagStockDetails'], true);
foreach($updateBagStockDetailsData as $data){
$date = $data['date'];
$materialCode = $data['materialCode'];
$dbData= [
'date' =>$data['date'],
'materialCode' =>$data['materialCode'],
'customer' =>$data['customer'],
'opening' =>$data['opening'],
'receipt' =>$data['receipt'],
'used' =>$data['used'],
'balanceStock' =>$data['balanceStock'],
];
$resultExists=$this->bagStockDetails_model
->where('date',$date)
->where('materialCode',$materialCode)
->first();
if(!empty($resultExists)){
$updated=$this->bagStockDetails_model
->where('date',$date)
->where('materialCode',$materialCode)
->set($dbData)
->update();
}else{
$inserted = $this->bagStockDetails_model->insert($dbData);
}
}
echo "Data Saved Successfully";
}

View File

@ -267,22 +267,43 @@
<?php foreach($bagStockDetails as $bagStockIndex => $bagStock){ ?>
<?php if ($bagStockIndex === 0): ?>
<td class="celda_normal"><?= $bagStock['date'] ?></td>
<td class="celda_normal">
<?= $bagStock['date'] ?>
</td>
<?php endif; ?>
<td style="display:none"><?= $bagStock['date']?></td>
<td style="display:none"><?= $bagStock['materialCode']?></td>
<td style="display:none">
<?= $bagStock['date']?>
</td>
<td style="display:none"
data-id="<?=$bagStock['date']?> <?=$bagStock['materialCode']?>"
class="materialCode" ><?= $bagStock['materialCode']?>
</td>
<td style="display:none"><?= $bagStock['customer']?></td>
<td class="celda_normal "
data-id="<?= $bagStock['date']?> <?= $bagStock['materialCode']?>"
<td class="celda_normal openingStock"
data-id="<?=$bagStock['date']?> <?=$bagStock['materialCode']?>"
oninput="openingStockChange(this)"
contenteditable="true"><?= $bagStock['opening']?></td>
<td class="celda_normal"><?= $bagStock['receipt']?></td>
<td class="celda_normal"
data-id="<?= $bagStock['date']?> <?= $bagStock['materialCode']?>"
contenteditable="true"><?= $bagStock['opening']?>
</td>
<td class="celda_normal receiptStock"
data-id="<?=$bagStock['date']?> <?=$bagStock['materialCode']?>">
<?= $bagStock['receipt']?>
</td>
<td class="celda_normal usedStock"
data-id="<?=$bagStock['date']?> <?=$bagStock['materialCode']?>"
oninput="usedStockChange(this)"
contenteditable="true"><?= $bagStock['used']?></td>
<td class="celda_normal"><?= $bagStock['balanceStock']?></td>
contenteditable="true"><?= $bagStock['used']?>
</td>
<td class="celda_normal balanceStock"
data-id="<?=$bagStock['date']?> <?=$bagStock['materialCode']?>">
<?= $bagStock['balanceStock']?>
</td>
<?php } ?>
</tr>
@ -330,6 +351,8 @@
var updateBagStockDetails = tableToJson();
alert('Updation may take a while, And we appreciate your patience..!!');
$('#loader').show();
$.ajax({
data: {
@ -341,9 +364,8 @@
success: function (data) {
if (data) {
$('#loader').hide();
console.log(data);
alert(data);
}
},
@ -382,7 +404,7 @@
for (let i = 1; i < rowCells.length; i += 7) {
const rowData = {
date: rowCells.eq(i).text().trim(),
material: rowCells.eq(i+1).text().trim(),
materialCode: rowCells.eq(i+1).text().trim(),
customer: rowCells.eq(i+2).text().trim(),
opening: rowCells.eq(i+3).text().trim(),
receipt: rowCells.eq(i+4).text().trim(),
@ -404,58 +426,89 @@
</script>
<script>
function openingStockChange(tdElement) {
let dataId = tdElement.getAttribute('data-id').split(' ');
let date=dataId[0];
let materialCode= dataId[1];
let changedField = "openingStock";
let changedFieldValue = tdElement.innerText;
let currentBalanceStock=calculateCurrentBalanceStock(changedField,changedFieldValue);
const table = $('#bagStockDetailsTableId');
function openingStockChange(tdElement) {
try{
let dataId = tdElement.getAttribute('data-id');
let [date,materialCode] = tdElement.getAttribute('data-id').split(' ');
let openingStock = tdElement.innerText;
let usedStock = document.querySelector(`td.usedStock[data-id="${dataId}"]`).innerText;
let receiptStock = document.querySelector(`td.receiptStock[data-id="${dataId}"]`).innerText;
let currentBalanceStock = (Number(openingStock) + Number(receiptStock)) - Number(usedStock);
document.querySelector(`td.balanceStock[data-id="${dataId}"]`).innerText=currentBalanceStock;
updateStockValue( date,materialCode,currentBalanceStock )
} catch(error){
console.error("There is an error updating stock ..!!" + error);
}
}
function usedStockChange(tdElement) {
try {
let dataId = tdElement.getAttribute('data-id');
let [date,materialCode] = tdElement.getAttribute('data-id').split(' ');
let openingStock = document.querySelector(`td.openingStock[data-id="${dataId}"]`).innerText;
let receiptStock = document.querySelector(`td.receiptStock[data-id="${dataId}"]`).innerText;
let usedStock = tdElement.innerText;
let currentBalanceStock = ( Number(openingStock) + Number(receiptStock) ) - Number(usedStock);
document.querySelector(`td.balanceStock[data-id="${dataId}"]`).innerText=currentBalanceStock;
updateStockValue( date,materialCode,currentBalanceStock )
} catch (error) {
console.error("There is an error updating stock ..!!" + error);
}
}
</script>
<script>
function updateStockValue( date, materialCode, currentBalanceStock ){
const table = $('#bagStockDetailsTableId');
const rows = [];
table.find('tbody tr').each(function() {
const rowCells = $(this).find('td');
const otherDate = rowCells.eq(0).text().trim();
if( new Date(new Date(otherDate)) > new Date(date)){
console.log( new Date(otherDate));
console.log( new Date(date));
if( new Date(otherDate) > new Date(date) ){ //other records present after it
/**this data-id ,openingStock ,used stock , current Balance Stock
is for changing subsequent dates not the earlier one **/
let dataId = `${otherDate} ${materialCode}`;
document.querySelector(`td.openingStock[data-id="${dataId}"]`).innerText=currentBalanceStock;
let usedStock = document.querySelector(`td.usedStock[data-id="${dataId}"]`).innerText;
let receiptStock = document.querySelector(`td.receiptStock[data-id="${dataId}"]`).innerText;
currentBalanceStock = (Number(currentBalanceStock) + Number(receiptStock)) - Number(usedStock);
document.querySelector(`td.balanceStock[data-id="${dataId}"]`).innerText=currentBalanceStock;
// console.log( 'other date' , new Date(otherDate));
// console.log('new balance stock' , currentBalanceStock)
}
})
//find balance stock for this row first and update the balance stock for next rows
console.log('Date:', date);
console.log('materialCode:', materialCode);
console.log('changedField:', changedField);
console.log('changedFieldValue', tdElement.innerText); // Log the cell's current content
}
function usedStockChange(tdElement) {
let dataId = tdElement.getAttribute('data-id').split(' ');
let date=dataId[0];
let materialCode= dataId[1];
let changedField = "usedStock";
let changedFieldValue = tdElement.innerText;
let newBalanceStock=calculateCurrentBalanceStock(changedField,changedFieldValue);
//find balance stock for this row first and update the balance stock for next rows
console.log('Date:', date);
console.log('materialCode:', materialCode);
console.log('changedField:', changedField);
console.log('changedFieldValue', tdElement.innerText); // Log the cell's current content
}
</script>
<script>
function calculateCurrentBalanceStock(changedField,changedFieldValue){
return
}
</script>