diff --git a/app/Models/BagStockDetailsModel.php b/app/Models/BagStockDetailsModel.php index fa7aa260..4a4e9993 100644 --- a/app/Models/BagStockDetailsModel.php +++ b/app/Models/BagStockDetailsModel.php @@ -7,25 +7,19 @@ use CodeIgniter\Model; class BagStockDetailsModel extends Model { protected $table = 't_bagStockDetails'; - protected $primaryKey = 'id'; - protected $useAutoIncrement = true; protected $returnType = 'array'; protected $useSoftDeletes = false; protected $protectFields = true; - protected $allowedFields = []; + protected $allowedFields = [ + 'date', 'materialCode', 'customer', 'opening', 'receipt', 'used', 'balanceStock' + ]; protected bool $allowEmptyInserts = false; protected bool $updateOnlyChanged = true; - protected array $casts = []; - protected array $castHandlers = []; - // Dates protected $useTimestamps = false; protected $dateFormat = 'datetime'; - protected $createdField = 'created_at'; - protected $updatedField = 'updated_at'; - protected $deletedField = 'deleted_at'; // Validation protected $validationRules = []; @@ -33,14 +27,35 @@ class BagStockDetailsModel extends Model protected $skipValidation = false; protected $cleanValidationRules = true; - // Callbacks - protected $allowCallbacks = true; - protected $beforeInsert = []; - protected $afterInsert = []; - protected $beforeUpdate = []; - protected $afterUpdate = []; - protected $beforeFind = []; - protected $afterFind = []; - protected $beforeDelete = []; - protected $afterDelete = []; + /** + * Custom method to handle composite key updates. + * @param array $data Array of records to be updated in bulk. + * @return bool + */ + public function updateBatchWithCompositeKey(array $data) + { + $db = \Config\Database::connect(); + $db->transBegin(); + + foreach ($data as $record) { + $db->table($this->table) + ->where('date', $record['date']) + ->where('materialCode', $record['materialCode']) + ->update([ + 'customer' => $record['customer'], + 'opening' => $record['opening'], + 'receipt' => $record['receipt'], + 'used' => $record['used'], + 'balanceStock' => $record['balanceStock'] + ]); + } + + if ($db->transStatus() === FALSE) { + $db->transRollback(); + return false; + } else { + $db->transCommit(); + return true; + } + } } diff --git a/app/Views/bagStockDetails.php b/app/Views/bagStockDetails.php index f312d388..cfde7953 100644 --- a/app/Views/bagStockDetails.php +++ b/app/Views/bagStockDetails.php @@ -218,6 +218,7 @@ material + material 1 material 2 @@ -226,6 +227,7 @@ Customer + @@ -239,6 +241,7 @@ Date + Date material customer @@ -267,38 +270,38 @@ 23-10-2024 material 1 customer 1 - 472 - 11212 - - 472 + 11212 + - + 472 23-10-2024 material 2 customer 2 472 11212 - - + - 472 - 23-10-2024 - Date + 24-10-2024 + 24-10-2024 material 1 customer 1 472 11212 - - + - 472 - Date - material 1 - customer 1 + 24-10-2024 + material 2 + customer 2 472 11212 - - + - 472 @@ -342,9 +345,7 @@ //table to json function - var updateBagStockDetails = $("#bagStockDetailsTableId").tableToJSON(); - - updateBagStockDetails = JSON.stringify(incomingSilicaSandDetailsData); + var updateBagStockDetails = tableToJSON(); $('#loader').show(); $.ajax({ @@ -391,8 +392,8 @@ material: 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(), - used: rowCells.eq(i + 5).text().trim(), + receipt: rowCells.eq(i+4).text().trim(), + used: rowCells.eq(i+5).text().trim(), balanceStock: rowCells.eq(i + 6).text().trim() }; @@ -406,8 +407,5 @@ console.log(tableToJson()); - $('#saveId').on('click', function() { - const jsonResult = tableToJson(); - console.log(jsonResult); - }); + \ No newline at end of file