diff --git a/app/Config/Routes.php b/app/Config/Routes.php
index eb6f5064..3e22539f 100755
--- a/app/Config/Routes.php
+++ b/app/Config/Routes.php
@@ -471,6 +471,7 @@ $routes->match(['GET', 'POST'], 'coatingMachineDetails', 'StockController::loadV
$routes->post('addNewCoatingMachineDetails', 'StockController::addNewCoatingMachineDetails');
$routes->post('updateCoatingMachineDetails', 'StockController::updateCoatingMachineDetails');
$routes->post('deleteBatchCardFile','StockController::deleteBatchCardFile');
+$routes->get('download-batchcard-zip','StockController::downloadBatchCardZip');
//drier machine details
$routes->match(['GET', 'POST', 'PUT', 'DELETE'], 'drierMachineDetails', 'StockController::drierMachineDetails');
diff --git a/app/Controllers/StockController.php b/app/Controllers/StockController.php
index 3fc57845..08de9d9d 100644
--- a/app/Controllers/StockController.php
+++ b/app/Controllers/StockController.php
@@ -168,7 +168,8 @@ class StockController extends BaseController
JSON_OBJECT(
"client_given_name", t_batchcard_files.client_file_name,
"filename", t_batchcard_files.filename,
- "batchCardId" , t_batchcard_files.id
+ "batchCardId" , t_batchcard_files.id,
+ "coating_id", t_batchcard_files.coating_id
)
) as batchcard_files')
->join('t_batchcard_files', 't_batchcard_files.coating_id = t_coatingMachineDetails.id', 'left')
@@ -437,6 +438,59 @@ class StockController extends BaseController
'message' => "Invalid Request..!!"
]);
}
+
+
+ public function downloadBatchcardZip()
+ {
+ $coatingId = $this->request->getGet('coating_id');
+ $date = $this->request->getGet('date');
+ $batchCardFiles = $this->getBatchCardFiles($coatingId); // Fetch files from DB
+
+ if (empty($batchCardFiles)) {
+ return redirect()->back()->with('error', 'No batchcard files found.');
+ }
+
+ $zipFileName = 'batchcard_files_' . $date . '.zip';
+ $zipFilePath = WRITEPATH . 'uploads/batchcard' . $zipFileName; // CI4 WRITEPATH safe directory
+
+ $zip = new \ZipArchive();
+ if ($zip->open($zipFilePath, \ZipArchive::CREATE | \ZipArchive::OVERWRITE) === true) {
+ foreach ($batchCardFiles as $file) {
+ $originalFilePath = WRITEPATH . 'uploads/batchcard/' . $file['filename']; // Actual stored file
+ $clientFileName = $file['client_file_name'] ?? $file['filename']; // Use client name if available
+
+ if (file_exists($originalFilePath)) {
+ $zip->addFile($originalFilePath, $clientFileName); // Rename inside ZIP
+ }
+ }
+ $zip->close();
+
+ $response = $this->response->download($zipFilePath, null)->setFileName($zipFileName);
+
+ // Delete ZIP after response is sent
+ register_shutdown_function(function () use ($zipFilePath) {
+ if (file_exists($zipFilePath)) {
+ unlink($zipFilePath);
+ }
+ });
+
+ return $response;
+ }
+
+ return redirect()->back()->with('error', 'Failed to create ZIP file.');
+ }
+
+ // Example function to get batchcard files from DB
+ private function getBatchCardFiles($coatingId)
+ {
+ $batchCardFiles = $this->db->table('t_batchcard_files')
+ ->where('coating_id', $coatingId)
+ ->get()
+ ->getResultArray();
+
+ return $batchCardFiles;
+ }
+
//incoming Silica Sand Details starts
diff --git a/app/Views/stock/CoatingMachineDetail.php b/app/Views/stock/CoatingMachineDetail.php
index 4ff0b62b..bf975bca 100644
--- a/app/Views/stock/CoatingMachineDetail.php
+++ b/app/Views/stock/CoatingMachineDetail.php
@@ -356,6 +356,9 @@
$summary = [] ;
foreach ($coatingMachineDetails as $record) {
+
+ $batchCardFiles =json_decode($record['batchcard_files'],true);
+
?>
|
+
+
+
@@ -403,6 +409,22 @@
+ $files) {
+ if ($index === 0 && !empty($files['batchCardId']) && $files['coating_id'] == $record['id'])
+ {
+ ?>
+
+
+
+
+
+
|
|
diff --git a/app/Views/stock/bagStockDetails.php b/app/Views/stock/bagStockDetails.php
index 2675cd81..d95a023c 100644
--- a/app/Views/stock/bagStockDetails.php
+++ b/app/Views/stock/bagStockDetails.php
@@ -221,6 +221,12 @@
}
+ /* .fht-table td[contenteditable="true"] {
+ background-color: lightyellow;
+ color:rgb(13, 7, 7);
+ } */
+
+
@@ -353,8 +359,8 @@
Date |
- material |
- customer |
+ Material |
+ Customer |
Opening Stock |
Receipt |
Used |
@@ -1036,4 +1042,42 @@
+
+
+
\ No newline at end of file
diff --git a/app/Views/stock/dieselStockDetails.php b/app/Views/stock/dieselStockDetails.php
index 2c0af006..778e53c6 100644
--- a/app/Views/stock/dieselStockDetails.php
+++ b/app/Views/stock/dieselStockDetails.php
@@ -1033,10 +1033,10 @@ foreach ($period as $day) {
let closingReading = validateInput(document.querySelector(`td.closingReading[data-id="${dataId}"]`).innerText);
let consumption = validateInput(document.querySelector(`td.consumption[data-id="${dataId}"]`).innerText);
let runningHours = Math.abs(Number(closingReading) - Number(openingReading));
- let mileage = consumption == 0 || runningHours == 0 ? 0 : (Number(consumption) / Number(runningHours)).toFixed(2) ;
+ let mileage = consumption == 0 || runningHours == 0 ? 0 : (Number(consumption) / Number(runningHours)) ;
- document.querySelector(`td.runningHours[data-id="${dataId}"]`).innerText = (runningHours).toFixed(2);
- document.querySelector(`td.mileage[data-id="${dataId}"]`).innerText = mileage;
+ document.querySelector(`td.runningHours[data-id="${dataId}"]`).innerText = parseFloat(runningHours).toFixed(2);
+ document.querySelector(`td.mileage[data-id="${dataId}"]`).innerText = parseFloat(mileage).toFixed(2);
updateStockValue(date,machine_id,closingReading)
@@ -1058,10 +1058,10 @@ foreach ($period as $day) {
let openingReading = validateInput(document.querySelector(`td.openingReading[data-id="${dataId}"]`).innerText);
let consumption = validateInput(document.querySelector(`td.consumption[data-id="${dataId}"]`).innerText);
let runningHours = Math.abs(Number(closingReading) - Number(openingReading));
- let mileage = consumption == 0 || runningHours == 0 ? 0 : (Number(consumption) / Number(runningHours)).toFixed(2) ;
+ let mileage = consumption == 0 || runningHours == 0 ? 0 : Number(consumption) / Number(runningHours) ;
- document.querySelector(`td.runningHours[data-id="${dataId}"]`).innerText = (runningHours).toFixed(2);
- document.querySelector(`td.mileage[data-id="${dataId}"]`).innerText = mileage;
+ document.querySelector(`td.runningHours[data-id="${dataId}"]`).innerText = parseFloat(runningHours).toFixed(2);
+ document.querySelector(`td.mileage[data-id="${dataId}"]`).innerText = parseFloat(mileage).toFixed(2);
updateStockValue(date, machine_id, closingReading)
@@ -1083,10 +1083,10 @@ foreach ($period as $day) {
let openingReading = validateInput(document.querySelector(`td.openingReading[data-id="${dataId}"]`).innerText);
let consumption = validateInput(tdElement.innerText);
let runningHours = Math.abs(Number(closingReading) - Number(openingReading));
- let mileage = consumption == 0 || runningHours == 0 ? 0 : (Number(consumption) / Number(runningHours)).toFixed(2) ;
+ let mileage = consumption == 0 || runningHours == 0 ? 0 : (Number(consumption) / Number(runningHours)) ;
- document.querySelector(`td.runningHours[data-id="${dataId}"]`).innerText = (runningHours).toFixed(2);
- document.querySelector(`td.mileage[data-id="${dataId}"]`).innerText = mileage;
+ document.querySelector(`td.runningHours[data-id="${dataId}"]`).innerText = parseFloat(runningHours).toFixed(2);
+ document.querySelector(`td.mileage[data-id="${dataId}"]`).innerText = parseFloat(mileage).toFixed(2);
updateStockValue(date, machine_id, closingReading)
@@ -1119,7 +1119,7 @@ foreach ($period as $day) {
)});
- document.querySelector(`td.fillingTD[data-id="${date}"]`).innerText = totalFillingDiesel;
+ document.querySelector(`td.fillingTD[data-id="${date}"]`).innerText = parseFloat(totalFillingDiesel).toFixed(2) ;
let openingTD = validateInput(document.querySelector(`td.openingTD[data-id="${date}"]`).innerText);
@@ -1127,7 +1127,7 @@ foreach ($period as $day) {
let balanceTD = (Number(openingTD) + Number(purchaseTD)) - Number(totalFillingDiesel) ;
- document.querySelector(`td.balanceTD[data-id="${date}"]`).innerText = balanceTD ;
+ document.querySelector(`td.balanceTD[data-id="${date}"]`).innerText = parseFloat(balanceTD).toFixed(2) ;
updateTotalStockValue(date, balanceTD) ;
@@ -1157,7 +1157,7 @@ foreach ($period as $day) {
let balanceTD = (Number(openingTD) + Number(purchaseTD)) - Number(fillingTD) ;
- document.querySelector(`td.balanceTD[data-id="${dataId}"]`).innerText = balanceTD ;
+ document.querySelector(`td.balanceTD[data-id="${dataId}"]`).innerText = parseFloat(balanceTD).toFixed(2) ;
updateTotalStockValue(dataId , balanceTD)
@@ -1181,7 +1181,7 @@ foreach ($period as $day) {
balanceTD = (Number(openingTD) + Number(purchaseTD)) - Number(fillingTD) ;
- document.querySelector(`td.balanceTD[data-id="${dataId}"]`).innerText = balanceTD ;
+ document.querySelector(`td.balanceTD[data-id="${dataId}"]`).innerText = parseFloat(balanceTD).toFixed(2) ;
updateTotalStockValue(dataId, balanceTD) ;
@@ -1263,9 +1263,9 @@ foreach ($period as $day) {
document.querySelector(`td.runningHours[data-id="${dataId}"]`).innerText = runningHours == 0 ? " " : (runningHours).toFixed(2) ;
- document.querySelector(`td.mileage[data-id="${dataId}"]`).innerText = mileage == 0 ? " " : mileage ;
+ document.querySelector(`td.mileage[data-id="${dataId}"]`).innerText = mileage == 0 ? " " : parseFloat(mileage).toFixed(2) ;
- document.querySelector(`td.closingReading[data-id="${dataId}"]`).innerText = closingReading == 0 ? " " : (closingReading).toFixed(2) ;
+ document.querySelector(`td.closingReading[data-id="${dataId}"]`).innerText = closingReading == 0 ? " " : parseFloat(closingReading).toFixed(2) ;
}
@@ -1297,7 +1297,7 @@ foreach ($period as $day) {
let dataId = `${otherDate}`;
- document.querySelector(`td.openingTD[data-id="${dataId}"]`).innerText = balanceTD;
+ document.querySelector(`td.openingTD[data-id="${dataId}"]`).innerText = parseFloat(balanceTD).toFixed(2) ;
let openingTD = document.querySelector(`td.openingTD[data-id="${dataId}"]`).innerText;
@@ -1310,7 +1310,7 @@ foreach ($period as $day) {
balanceTD = (Number(openingTD) + Number(purchaseTD)) - Number(fillingTD) ;
- document.querySelector(`td.balanceTD[data-id="${dataId}"]`).innerText = balanceTD ;
+ document.querySelector(`td.balanceTD[data-id="${dataId}"]`).innerText = parseFloat(balanceTD).toFixed(2) ;
}
@@ -1360,4 +1360,42 @@ foreach ($period as $day) {
+
+
+
\ No newline at end of file
diff --git a/app/Views/stock/dustAndRoughStockDetails.php b/app/Views/stock/dustAndRoughStockDetails.php
index a30577b2..e799142e 100644
--- a/app/Views/stock/dustAndRoughStockDetails.php
+++ b/app/Views/stock/dustAndRoughStockDetails.php
@@ -650,3 +650,41 @@
+
+
diff --git a/app/Views/stock/gasStockDetails.php b/app/Views/stock/gasStockDetails.php
index 1637cac4..406a7da0 100644
--- a/app/Views/stock/gasStockDetails.php
+++ b/app/Views/stock/gasStockDetails.php
@@ -291,21 +291,18 @@
-
-
- | SEP- GAS CONSUMPTION-422 & 425 kg |
-
+
| RIPL |
Gas Stock |
- 10 Ton |
+ FBD 10 Ton Dryer |
Sand Dried |
Coating Machine |
Sand Coated |
- Trp Machine |
+ TRP |
Sand TRP |
Rotary Drier |
@@ -319,12 +316,12 @@
Consumption |
Balance Stock |
Consumption |
- ton |
+ Ton |
Consumption |
- ton |
+ Ton |
Panel Consumption |
Physical Consumption |
- ton |
+ Ton |
Consumption |
@@ -514,11 +511,11 @@
| RIPL |
Gas Stock |
- 10 Ton |
+ FBD 10 Ton Dryer |
Sand Dried |
Coating Machine |
Sand Coated |
- Trp Machine |
+ TRP |
Sand TRP |
Rotary Drier |
@@ -1141,4 +1138,42 @@ function convertToDate(dateString) {
return input;
}
+
+
+
\ No newline at end of file
diff --git a/app/Views/stock/incomingSilicaSandDetails.php b/app/Views/stock/incomingSilicaSandDetails.php
index 0526be34..080ee3fe 100644
--- a/app/Views/stock/incomingSilicaSandDetails.php
+++ b/app/Views/stock/incomingSilicaSandDetails.php
@@ -28,6 +28,12 @@
color: #ffffff;
}
+ /* .fht-table td[contenteditable="true"] {
+ background-color: lightyellow;
+ color:rgb(13, 7, 7);
+ } */
+
+
.fht-table {
border: 0 none;
height: auto;
@@ -1755,4 +1761,43 @@ $(document).ready(function() {
-
\ No newline at end of file
+
+
+
+
\ No newline at end of file
diff --git a/app/Views/stock/powerConsumptionDetails.php b/app/Views/stock/powerConsumptionDetails.php
index f1a01491..1925e8ac 100644
--- a/app/Views/stock/powerConsumptionDetails.php
+++ b/app/Views/stock/powerConsumptionDetails.php
@@ -17,6 +17,11 @@
text-align: center;
}
+ /* .fht-table td[contenteditable="true"] {
+ background-color: lightyellow;
+ color:rgb(13, 7, 7);
+ } */
+
.fht-table td:hover {
background-color: #50bbd9;
color: #ffffff;
@@ -1075,7 +1080,7 @@ foreach ($period as $day) {
let totalUnits = parseFloat(closingUnits) - parseFloat(openingUnits) ;
- document.querySelector(`td.totalUnits[data-id="${dataId}"]`).innerText = (totalUnits).toFixed(2);
+ document.querySelector(`td.totalUnits[data-id="${dataId}"]`).innerText = parseFloat(totalUnits).toFixed(2);
updateStockValue(date,machine_id,closingUnits)
@@ -1098,7 +1103,7 @@ foreach ($period as $day) {
let totalUnits = parseFloat(closingUnits) - parseFloat(openingUnits) ;
- document.querySelector(`td.totalUnits[data-id="${dataId}"]`).innerText = (totalUnits).toFixed(2);
+ document.querySelector(`td.totalUnits[data-id="${dataId}"]`).innerText = parseFloat(totalUnits).toFixed(2);
updateStockValue(date,machine_id,closingUnits)
@@ -1125,9 +1130,9 @@ foreach ($period as $day) {
let totalUnitsTP = totalReadingTP * 60 ;
- document.querySelector(`td.totalReadingTP[data-id="${dataId}"]`).innerText = (totalReadingTP).toFixed(2) ;
+ document.querySelector(`td.totalReadingTP[data-id="${dataId}"]`).innerText = parseFloat(totalReadingTP).toFixed(2) ;
- document.querySelector(`td.totalUnitsTP[data-id="${dataId}"]`).innerText = (totalUnitsTP).toFixed(2) ;
+ document.querySelector(`td.totalUnitsTP[data-id="${dataId}"]`).innerText = parseFloat(totalUnitsTP).toFixed(2) ;
updateTotalStockValue(dataId , finalTP) ;
@@ -1153,9 +1158,9 @@ foreach ($period as $day) {
let totalUnitsTP = totalReadingTP * 60 ;
- document.querySelector(`td.totalReadingTP[data-id="${dataId}"]`).innerText = (totalReadingTP).toFixed(2) ;
+ document.querySelector(`td.totalReadingTP[data-id="${dataId}"]`).innerText = parseFloat(totalReadingTP).toFixed(2) ;
- document.querySelector(`td.totalUnitsTP[data-id="${dataId}"]`).innerText = (totalUnitsTP).toFixed(2) ;
+ document.querySelector(`td.totalUnitsTP[data-id="${dataId}"]`).innerText = parseFloat(totalUnitsTP).toFixed(2) ;
updateTotalStockValue(dataId , finalTP)
@@ -1176,7 +1181,7 @@ foreach ($period as $day) {
let mdTP = validateInput(tdElement.innerText);
- document.querySelector(`td.mfTP[data-id="${dataId}"]`).innerText = (mdTP * 60).toFixed(2) ;
+ document.querySelector(`td.mfTP[data-id="${dataId}"]`).innerText = parseFloat(mdTP * 60).toFixed(2) ;
} catch (error) {
@@ -1236,7 +1241,7 @@ foreach ($period as $day) {
let dataId = `${otherDate} ${machine_id}`;
- document.querySelector(`td.openingUnits[data-id="${dataId}"]`).innerText = closingUnits == 0 ? " " : closingUnits ;
+ document.querySelector(`td.openingUnits[data-id="${dataId}"]`).innerText = closingUnits == 0 ? " " : parseFloat(closingUnits).toFixed(2) ;
let openingUnits = validateInput(document.querySelector(`td.openingUnits[data-id="${dataId}"]`).innerText);
@@ -1244,7 +1249,7 @@ foreach ($period as $day) {
closingUnits = Math.abs(Number(openingUnits) + Number(totalUnits));
- document.querySelector(`td.closingUnits[data-id="${dataId}"]`).innerText = closingUnits == 0 ? " " : closingUnits ;
+ document.querySelector(`td.closingUnits[data-id="${dataId}"]`).innerText = closingUnits == 0 ? " " : parseFloat(closingUnits).toFixed(2) ;
}
@@ -1275,7 +1280,7 @@ foreach ($period as $day) {
let dataId = `${otherDate}`;
- document.querySelector(`td.openingTP[data-id="${dataId}"]`).innerText = finalTP == 0 ? " " : finalTP ;
+ document.querySelector(`td.openingTP[data-id="${dataId}"]`).innerText = finalTP == 0 ? " " : parseFloat(finalTP).toFixed(2) ;
let openingTP = validateInput(document.querySelector(`td.openingTP[data-id="${dataId}"]`).innerText) ;
@@ -1290,9 +1295,9 @@ foreach ($period as $day) {
- document.querySelector(`td.finalTP[data-id="${dataId}"]`).innerText = finalTP == 0 ? " " : finalTP;
- document.querySelector(`td.totalReadingTP[data-id="${dataId}"]`).innerText = totalReadingTP == 0 ? " " : totalReadingTP ;
- document.querySelector(`td.totalUnitsTP[data-id="${dataId}"]`).innerText = totalUnitsTP == 0 ? " " : totalUnitsTP;
+ document.querySelector(`td.finalTP[data-id="${dataId}"]`).innerText = finalTP == 0 ? " " : parseFloat(finalTP).toFixed(2) ;
+ document.querySelector(`td.totalReadingTP[data-id="${dataId}"]`).innerText = totalReadingTP == 0 ? " " : parseFloat(totalReadingTP).toFixed(2) ;
+ document.querySelector(`td.totalUnitsTP[data-id="${dataId}"]`).innerText = totalUnitsTP == 0 ? " " : parseFloat(totalUnitsTP).toFixed(2) ;
@@ -1344,4 +1349,39 @@ foreach ($period as $day) {
+
+
+
\ No newline at end of file
diff --git a/app/Views/stock/resinStockDetails.php b/app/Views/stock/resinStockDetails.php
index da4ea4dd..f39ae0ef 100644
--- a/app/Views/stock/resinStockDetails.php
+++ b/app/Views/stock/resinStockDetails.php
@@ -21,6 +21,11 @@
background-color: #50bbd9;
color: #ffffff;
}
+/*
+ .fht-table td[contenteditable="true"] {
+ background-color: lightyellow;
+ color:rgb(13, 7, 7);
+ } */
.fht-table {
border: 0 none;
@@ -953,4 +958,42 @@ foreach ($period as $day) {
+
+
+
\ No newline at end of file
diff --git a/app/Views/stock/trpSandUseStockDetails.php b/app/Views/stock/trpSandUseStockDetails.php
index d21f1b50..ef86e42b 100644
--- a/app/Views/stock/trpSandUseStockDetails.php
+++ b/app/Views/stock/trpSandUseStockDetails.php
@@ -706,3 +706,43 @@
+
+
+
+