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 @@