You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

95 lines
2.5 KiB

<?php
namespace App\Models;
use CodeIgniter\Model;
class Caisse extends Model{
/**
* table name
* @var string
*/
protected $table = 'caisse';
protected $primaryKey = 'caisse_id';
protected $allowedFields = ['caisse_total', 'caisse_mvola', 'caisse_espece', 'caisse_banque'];
public function getCaisseById($id = 1) {
return $this->where('caisse_id', $id)->first();
}
public function updateCaisse($data) {
try {
$id = 1;
if ($this->update($id, $data)) {
return true;
}
return false;
} catch (\Exception $e) {
log_message('error', 'Erreur lors de la mise à jour de la caisse : ' . $e->getMessage());
return false;
}
}
public function updateCaissePerRecouvrement($montant) {
try {
$this->transStart();
$this->set('caisse_espece', 'caisse_espece + ' . (float)$montant, false);
$this->where('caisse_id', 1);
$this->update();
$this->set('caisse_mvola', 'caisse_mvola - ' . (float)$montant, false);
$this->where('caisse_id', 1);
$this->update();
if ($this->transStatus() === false) {
$this->transRollback();
return false;
}
$this->transComplete();
return true;
} catch (\Exception $e) {
$this->transRollback();
log_message('error', 'Erreur lors de la mise à jour de la caisse : ' . $e->getMessage());
return false;
}
}
public function updateCaissePerOrders($p1, $p2, $operation = '+', $p3 = null, $destination = 'banque') {
$caisse = $this->where('caisse_id', 1)->first();
if (!$caisse) {
return false;
}
$data = [
'caisse_total' => $caisse['caisse_total'] + $p1,
];
if ($operation == '+') {
$data['caisse_mvola'] = $caisse['caisse_mvola'] + $p2;
} elseif ($operation == '-') {
$data['caisse_mvola'] = $caisse['caisse_mvola'] - $p2;
}
if ($p3 !== null) {
if ($destination === 'banque') {
$data['caisse_banque'] = $caisse['caisse_banque'] + $p3;
} elseif ($destination === 'espece') {
$data['caisse_espece'] = $caisse['caisse_espece'] + $p3;
}
}
// Exécuter la mise à jour
return $this->update(1, $data);
}
}