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.
131 lines
4.0 KiB
131 lines
4.0 KiB
<?php
|
|
namespace App\Models;
|
|
|
|
use CodeIgniter\Model;
|
|
use App\Models\Orders;
|
|
use DateTime;
|
|
|
|
class Remise extends Model
|
|
{
|
|
/**
|
|
* table name
|
|
* @var string
|
|
*/
|
|
protected $table = 'demande_remise';
|
|
protected $primaryKey = 'id_demande'; // Primary key column
|
|
protected $allowedFields = ['id_order', 'montant_demande', 'date_demande','product','id_store','demande_status','total_price'];
|
|
|
|
public function getAllDemandeRemiseToday()
|
|
{
|
|
$session = session();
|
|
$users = $session->get('user');
|
|
if ($users["group_name"] === "Conseil") {
|
|
try {
|
|
|
|
$session = session();
|
|
$users = $session->get('user');
|
|
$users = session()->get('user_data');
|
|
if($users['group_name'] === "Direction"){
|
|
return $this ->where('demande_status', 'En attente')
|
|
->orderBy('date_demande', 'DESC')
|
|
->findAll();
|
|
}
|
|
return $this->where('demande_status', 'En attente')
|
|
->orderBy('date_demande', 'DESC')
|
|
->findAll();
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
log_message('error', 'Erreur lors de la récupération des demandes du jour : ' . $e->getMessage());
|
|
return [];
|
|
}
|
|
}
|
|
try {
|
|
|
|
$session = session();
|
|
$users = $session->get('user');
|
|
|
|
return $this
|
|
->where('id_store',$users['store_id'])
|
|
->orderBy('date_demande', 'DESC')
|
|
->findAll();
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
log_message('error', 'Erreur lors de la récupération des demandes du jour : ' . $e->getMessage());
|
|
return [];
|
|
}
|
|
}
|
|
|
|
public function addDemande( array $data) {
|
|
try {
|
|
return $this->insert($data);
|
|
} catch (\Exception $e) {
|
|
log_message('error', 'Erreur lors de l\'ajout de la demande de remise : ' . $e->getMessage());
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public function getRemiseData1(int $remise_id){
|
|
return $this->select('montant_demande','id_order')
|
|
->where('id_demande',$remise_id)
|
|
->first();
|
|
}
|
|
|
|
public function updateRemise( $id,$data) {
|
|
if ($id <= 0) {
|
|
log_message('error', 'ID invalide pour la mise à jour du recouvrement : ' . $id);
|
|
return false;
|
|
}
|
|
|
|
try {
|
|
// Essayer de mettre à jour les données
|
|
return $this->update($id, $data);
|
|
if ($data['demande_status'] == 'accepte') {
|
|
$Order = new Orders();
|
|
$remise_data = $this->getRemiseData1($id);
|
|
$montant_demande = $remise_data->montant_demande;
|
|
$order_id = $remise_data->id_order;
|
|
$data1 = [
|
|
'net_amount' => $montant_demande,
|
|
'gross_amount' => $montant_demande
|
|
];
|
|
$data2 = [
|
|
'rate' => $montant_demande,
|
|
'amount' => $montant_demande
|
|
];
|
|
$Order->update1($order_id, $data1,$data2);
|
|
}
|
|
} 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 getProductByDemandeId(int $id_demande): ?string
|
|
{
|
|
$row = $this
|
|
->select('product')
|
|
->where('id_order', $id_demande)
|
|
->first();
|
|
|
|
return $row['product'] ?? null;
|
|
}
|
|
|
|
public function updateRemise1(int $id,$data)
|
|
{
|
|
$existing = $this->where('id_order', $id)->first();
|
|
|
|
if ($existing) {
|
|
// Mise à jour
|
|
$this->update($existing['id_demande'], $data);
|
|
return "Remise mise à jour avec succès.";
|
|
} else {
|
|
// Création
|
|
$this->insert($data);
|
|
return "Nouvelle remise créée avec succès.";
|
|
}
|
|
}
|
|
|
|
}
|