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

@ -327,6 +327,48 @@ class StockController extends BaseController
public function updateBagStockDetails(){ 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 foreach($bagStockDetails as $bagStockIndex => $bagStock){ ?>
<?php if ($bagStockIndex === 0): ?> <?php if ($bagStockIndex === 0): ?>
<td class="celda_normal"><?= $bagStock['date'] ?></td> <td class="celda_normal">
<?= $bagStock['date'] ?>
</td>
<?php endif; ?> <?php endif; ?>
<td style="display:none"><?= $bagStock['date']?></td> <td style="display:none">
<td style="display:none"><?= $bagStock['materialCode']?></td> <?= $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 style="display:none"><?= $bagStock['customer']?></td>
<td class="celda_normal "
<td class="celda_normal openingStock"
data-id="<?=$bagStock['date']?> <?=$bagStock['materialCode']?>" data-id="<?=$bagStock['date']?> <?=$bagStock['materialCode']?>"
oninput="openingStockChange(this)" oninput="openingStockChange(this)"
contenteditable="true"><?= $bagStock['opening']?></td> contenteditable="true"><?= $bagStock['opening']?>
<td class="celda_normal"><?= $bagStock['receipt']?></td> </td>
<td class="celda_normal"
<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']?>" data-id="<?=$bagStock['date']?> <?=$bagStock['materialCode']?>"
oninput="usedStockChange(this)" oninput="usedStockChange(this)"
contenteditable="true"><?= $bagStock['used']?></td> contenteditable="true"><?= $bagStock['used']?>
<td class="celda_normal"><?= $bagStock['balanceStock']?></td> </td>
<td class="celda_normal balanceStock"
data-id="<?=$bagStock['date']?> <?=$bagStock['materialCode']?>">
<?= $bagStock['balanceStock']?>
</td>
<?php } ?> <?php } ?>
</tr> </tr>
@ -330,6 +351,8 @@
var updateBagStockDetails = tableToJson(); var updateBagStockDetails = tableToJson();
alert('Updation may take a while, And we appreciate your patience..!!');
$('#loader').show(); $('#loader').show();
$.ajax({ $.ajax({
data: { data: {
@ -341,9 +364,8 @@
success: function (data) { success: function (data) {
if (data) { if (data) {
$('#loader').hide(); $('#loader').hide();
console.log(data);
alert(data); alert(data);
} }
}, },
@ -382,7 +404,7 @@
for (let i = 1; i < rowCells.length; i += 7) { for (let i = 1; i < rowCells.length; i += 7) {
const rowData = { const rowData = {
date: rowCells.eq(i).text().trim(), 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(), customer: rowCells.eq(i+2).text().trim(),
opening: rowCells.eq(i+3).text().trim(), opening: rowCells.eq(i+3).text().trim(),
receipt: rowCells.eq(i+4).text().trim(), receipt: rowCells.eq(i+4).text().trim(),
@ -404,58 +426,89 @@
</script> </script>
<script> <script>
function openingStockChange(tdElement) { function openingStockChange(tdElement) {
let dataId = tdElement.getAttribute('data-id').split(' ');
let date=dataId[0]; try{
let materialCode= dataId[1]; let dataId = tdElement.getAttribute('data-id');
let changedField = "openingStock"; let [date,materialCode] = tdElement.getAttribute('data-id').split(' ');
let changedFieldValue = tdElement.innerText; let openingStock = tdElement.innerText;
let currentBalanceStock=calculateCurrentBalanceStock(changedField,changedFieldValue); 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 table = $('#bagStockDetailsTableId');
const rows = []; const rows = [];
table.find('tbody tr').each(function() { table.find('tbody tr').each(function() {
const rowCells = $(this).find('td'); const rowCells = $(this).find('td');
const otherDate = rowCells.eq(0).text().trim(); const otherDate = rowCells.eq(0).text().trim();
if( new Date(new Date(otherDate)) > new Date(date)){ if( new Date(otherDate) > new Date(date) ){ //other records present after it
console.log( new Date(otherDate));
console.log( new Date(date)); /**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> </script>