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.
 
 
 
 
 
 

176 lines
5.1 KiB

<?php
namespace App\Models;
use CodeIgniter\Model;
class SortieCaisse extends Model
{
/**
* table name
* @var string
*/
protected $table = 'sortie_caisse';
protected $primaryKey = 'id_sortie'; // Primary key column
protected $allowedFields = [
'montant_retire',
'date_retrait',
'motif',
'commentaire',
'fournisseur',
'nif_cin',
'statistique',
'telephone',
'code_postal',
'preuve_achat',
'sortie_personnel',
'source_fond',
'initiateur_demande',
'statut',
'user_id',
'store_id',
'mime_type',
'admin_raison'
];
public function getAllSortieCaisse()
{
try {
$session = session();
$users = $session->get('user');
if ($users['group_name'] === 'Direction') {
return $this
->select('*')
->orderBy('date_retrait', 'DESC')
->findAll();
}
if ($users['group_name'] === 'Conseil') {
return $this
->select('*')
->orderBy('date_retrait', 'DESC')
->findAll();
}
if($users["group_name"]==="Caissière"){
return $this
->select('*')
->where('user_id', $users['id'])
->orderBy('date_retrait', 'DESC')
->findAll();
}
return $this
->select('*')
->where('user_id', $users['id'])
->orderBy('date_retrait', 'DESC')
->findAll();
} catch (\Exception $e) {
log_message('error', 'Erreur lors de la récupération des sorties caisse : ' . $e->getMessage());
return [];
}
}
public function getAllSortieCaisse1()
{
try {
$session = session();
$users = $session->get('user');
if ($users['group_name'] === 'Direction') {
return $this
->select('*')
->join('user_group', 'user_group.user_id = sortie_caisse.user_id')
->where('user_group.group_id', 7)
->orderBy('date_retrait', 'DESC')
->findAll();
}
if ($users['group_name'] === 'Conseil') {
return $this
->select('*')
->join('user_group', 'user_group.user_id = sortie_caisse.user_id')
->where('user_group.group_id', 6)
->orderBy('date_retrait', 'DESC')
->findAll();
}
if($users["group_name"]==="Caissière"){
return $this
->select('*')
->where('user_id', $users['id'])
->orderBy('date_retrait', 'DESC')
->findAll();
}
return $this
->select('*')
->where('user_id', $users['id'])
->orderBy('date_retrait', 'DESC')
->findAll();
} catch (\Exception $e) {
log_message('error', 'Erreur lors de la récupération des sorties caisse : ' . $e->getMessage());
return [];
}
}
public function addSortieCaisse( array $data) {
try {
return $this->insert($data);
} catch (\Exception $e) {
log_message('error', 'Erreur lors de l\'ajout de la sortie : ' . $e->getMessage());
return false;
}
}
public function updateSortieCaisse(int $id, array $data) {
// Vérifier si l'ID est valide (par exemple, positif et non nul)
if ($id <= 0) {
log_message('error', 'ID invalide pour la mise à jour de la sortie caisse : ' . $id);
return false;
}
try {
// Essayer de mettre à jour les données
return $this->update($id, $data);
} catch (\Exception $e) {
// En cas d'exception, loguer l'erreur
log_message('error', 'Erreur lors de la mise à jour du recouvrement : ' . $e->getMessage());
return false;
}
}
public function getSortieCaisseSingle(int $id)
{
$reparation = $this->select('*')
->where('id_sortie', $id)
->first();
// return $this->where('user_id', $id)->findAll();
return $reparation;
}
public function getTotalSortieCaisse() {
$session = session();
$users = $session->get('user');
$isAdmin = in_array($users['group_name'], ['Conseil', 'Direction']);
if ($isAdmin) {
try {
return $this->select('
SUM(montant_retire) AS mr,
')
->where('statut', "Valider")
->get()
->getRowObject();
} catch (\Exception $e) {
log_message('error', 'Erreur lors de la récupération des sorties caisse : ' . $e->getMessage());
return false;
}
} else {
return $this->select('SUM(montant_retire) AS mr')
->where('store_id', $users['store_id'])
->where('statut', "Valider")
->get()
->getRowObject();
}
}
}