<?php
class Type_Bouteille  extends CI_Controller{
  function __construct() {
    parent::__construct();
        // $this->Is_Connected();

  }

  public function Is_Connected()
  {
   if (empty($this->session->userdata('SOCAR_ID_USER')))
   {
     redirect(base_url('Login/'));
   }
 }



 public function index()
 {

  $data['title']='Taille bouteille';
  $this->load->view('Type_Bouteille_Add_View',$data);

}



public function add()
{

  $DESCRIPTION=$this->input->post('DESCRIPTION'); 
  $LIMITE_VIDE=$this->input->post('LIMITE_VIDE'); 
  $LIMITE_PLEIN=$this->input->post('LIMITE_PLEIN'); 

  $QUANTITE_LITRE=$this->input->post('QUANTITE_LITRE'); 
  $PRIX_NORMAL=$this->input->post('PRIX_NORMAL'); 
  $PRIX_SILVER=$this->input->post('PRIX_SILVER'); 
  $PRIX_GOLD=$this->input->post('PRIX_GOLD'); 
  $this->form_validation->set_rules('DESCRIPTION', 'Taille de la bouteille', 'required');
  $this->form_validation->set_rules('LIMITE_VIDE', 'Limite Vide', 'required');
  $this->form_validation->set_rules('LIMITE_PLEIN', 'Limite Plein', 'required');
  $this->form_validation->set_rules('QUANTITE_LITRE', 'Quantite litre', 'required');

  if ($this->form_validation->run() == FALSE){
    $message = "<div class='alert alert-danger'>
    Type de bouteille non enregistr&eacute;
    <button type='button' class='close' data-dismiss='alert'>&times;</button>
    </div>";
    $this->session->set_flashdata(array('message'=>$message));
    $data['title']='Taille bouteille';
    $this->load->view('Type_Bouteille_Add_View',$data);
  }
  else{



    $datas=array('DESCRIPTION'=>$DESCRIPTION,'LIMITE_VIDE'=>$LIMITE_VIDE,'LIMITE_PLEIN'=>$LIMITE_PLEIN,'QUANTITE_LITRE'=>$QUANTITE_LITRE);
    $userId= $this->Model->insert_last_id('syst_taille_bouteille',$datas);

    // Récupérer le contenu du panier
    $cart = $this->cart->contents();
    // print_r($cart);exit();

    foreach ($cart as $item) {
      $data = array(
        'ID_TAILLE_BOUTEILLE'    => $userId,
        'MONTANT' => $item['price'],
        'ID_STANDARD'   => $item['id'],

      );

        // Insérer l'article dans la table panier
      $this->db->insert('standard_prix_status', $data);
    }
        $this->cart->destroy();
    $message = "<div class='alert alert-success' id='message'>
    Taille de la bouteille enregistr&eacute; avec succés
    <button type='button' class='close' data-dismiss='alert'>&times;</button>
    </div>";
    $this->session->set_flashdata(array('message'=>$message));
    redirect(base_url('configuration/Type_Bouteille/listing'));  
  }

}

public function add_to_cart444() {
 $desc=$this->Model->getRequeteOne('SELECT * FROM standard_status WHERE ID_STANDARD ='.$this->input->post('prix'));

 $data = array(
        'id'      => $this->input->post('prix'), // ID de l'article
        'qty'     => 1, // Quantité
        'price'   => $this->input->post('montant'), // Prix
        'name'    =>  $desc['DESCRIPTION'] // Nom de l'article
      );
  // print_r($data);exit();
    $this->cart->insert($data); // Ajouter l'article au panier
    echo json_encode(['status' => 'success']);
  }


  public function add_to_cart() {
    // Récupérer les détails de l'article
    $desc = $this->Model->getRequeteOne('SELECT * FROM standard_status WHERE ID_STANDARD = '.$this->input->post('prix'));

    // Créer un tableau de données pour l'article
    $data = array(
        'id'      => $this->input->post('prix'), // ID de l'article
        'qty'     => 1, // Initialiser la quantité à 1
        'price'   =>  $this->input->post('montant'), // Utiliser le prix récupéré
        'name'    => $desc['DESCRIPTION'] // Nom de l'article
      );
  // print_r($data);exit();

    // Vérifier si l'article est déjà dans le panier
    $existingItem = $this->cart->get_item($data['id']); // Récupérer l'article existant

    if ($existingItem) {
        // Si l'article existe déjà, augmenter la quantité
        $newQty = $existingItem['qty'] + 1; // Augmenter la quantité
        $data['qty'] = $newQty; // Mettre à jour la quantité

        // Mettre à jour l'article dans le panier
        $this->cart->update(array(
            'rowid' => $existingItem['rowid'], // ID de la ligne dans le panier
            'qty'   => $newQty // Nouvelle quantité
          ));
      } else {
        // Sinon, ajouter l'article au panier
        $this->cart->insert($data);
      }

      echo json_encode(['status' => 'success']);
    }

    public function view_cart() {
      $cart = $this->cart->contents();
      $output = '';

      $output .= '<table class="table table-bordered">';
      $output .= '<thead>';
      $output .= '<tr>';
      $output .= '<th>Type</th>';
      $output .= '<th>Prix </th>';
      $output .= '<th>Action</th>';
      $output .= '</tr>';
      $output .= '</thead>';
      $output .= '<tbody>';

      if (!empty($cart)) {
        foreach ($cart as $item) {
          $output .= '<tr>';
          $output .= "<td>{$item['name']}</td>";
          $output .= "<td>{$item['price']}</td>";
          $output .= "<td><button class='btn btn-danger btn-remove' data-rowid='{$item['rowid']}'>Supprimer</button></td>"; 
          $output .= '</tr>';
        }
      } else {
        $output .= '<tr><td colspan="4">Votre panier est vide.</td></tr>';
      }

      $output .= '</tbody>';
      $output .= '</table>';

    echo $output; // Renvoie le contenu du panier
  }


  public function remove_from_cart() {
    $rowid = $this->input->post('rowid'); // Récupérer l'ID de l'article à supprimer
    $this->cart->remove($rowid); // Supprimer l'article du panier
    echo json_encode(['status' => 'success']);
  }





  public function listing()
  {


    $data['resultat']=$this->Model->getRequete('SELECT * FROM `syst_taille_bouteille` ');
    $tabledata=array();



    $data['title']='Taille de bouteille';
    $this->load->view('Type_Bouteille_List_View',$data);

  }



  public function index_update($id)
  {

    $data['title']='Taille de bouteille';
    $data['data']=$this->Model->getRequeteOne('SELECT * FROM syst_taille_bouteille WHERE ID_TAILLE_BOUTEILLE = '.$id.'');
    $this->load->view('Type_Bouteille_Update_View',$data);

  }



  // public function update()
  // {
  //   $ID_TAILLE_BOUTEILLE=$this->input->post('ID_TAILLE_BOUTEILLE');  
  //   $DESCRIPTION=$this->input->post('DESCRIPTION');  
  //   $LIMITE_VIDE=$this->input->post('LIMITE_VIDE');      
  //   $LIMITE_PLEIN=$this->input->post('LIMITE_PLEIN');

  //   $ID_STANDARD_PRIX=$this->input->post('ID_STANDARD_PRIX'); 
  //   $ID_STANDARD=$this->input->post('ID_STANDARD'); 
  //   $MONTANT=$this->input->post('MONTANT'); 



  //   $this->form_validation->set_rules('DESCRIPTION', 'Taille de la bouteille', 'required');
  //   $this->form_validation->set_rules('LIMITE_VIDE', 'Limite Vide', 'required');
  //   $this->form_validation->set_rules('LIMITE_PLEIN', 'Limite Plein', 'required');

  //   $this->form_validation->set_rules('QUANTITE_LITRE', 'Quantite litre', 'required');
    
    
  //   if ($this->form_validation->run() == FALSE){
  //     $message = "<div class='alert alert-danger'>
  //     Type de bouteille non modifi&eacute;
  //     <button type='button' class='close' data-dismiss='alert'>&times;</button>
  //     </div>";
  //     $this->session->set_flashdata(array('message'=>$message));
  //     $data['title']='Taille de bouteille';
  //     $data['data']=$this->Model->getRequeteOne('SELECT * FROM syst_taille_bouteille WHERE ID_TAILLE_BOUTEILLE = '.$ID_TAILLE_BOUTEILLE.'');
  //     $this->load->view('Type_Bouteille_Update_View',$data);
  //   }
  //   else{

  //     $datas=array(
  //       'DESCRIPTION'=>$DESCRIPTION,
  //       'LIMITE_VIDE'=>$LIMITE_VIDE,
  //       'LIMITE_PLEIN'=>$LIMITE_PLEIN,
  //       'QUANTITE_LITRE'=>$QUANTITE_LITRE,
  //     );
  //     $this->Model->update('syst_taille_bouteille',array('ID_TAILLE_BOUTEILLE'=>$ID_TAILLE_BOUTEILLE),$datas);

  //     $message = "<div class='alert alert-success' id='message'>
  //     Type de bouteille modifi&eacute; avec succés
  //     <button type='button' class='close' data-dismiss='alert'>&times;</button>
  //     </div>";
  //     $this->session->set_flashdata(array('message'=>$message));
  //     redirect(base_url('configuration/Type_Bouteille/listing'));  
  //   }

  // }


public function update()
{
    $ID_TAILLE_BOUTEILLE = $this->input->post('ID_TAILLE_BOUTEILLE');  
    $DESCRIPTION = $this->input->post('DESCRIPTION');  
    $LIMITE_VIDE = $this->input->post('LIMITE_VIDE');      
    $LIMITE_PLEIN = $this->input->post('LIMITE_PLEIN');
    $QUANTITE_LITRE = $this->input->post('QUANTITE_LITRE'); 

    // Get prices from the form
    $PRIX_NORMAL = $this->input->post('MONTANT'); // Array of amounts
    $ID_STANDARD = $this->input->post('ID_STANDARD'); // Array of price types

    // Set validation rules
    $this->form_validation->set_rules('DESCRIPTION', 'Taille de la bouteille', 'required');
    $this->form_validation->set_rules('LIMITE_VIDE', 'Limite Vide', 'required');
    $this->form_validation->set_rules('LIMITE_PLEIN', 'Limite Plein', 'required');
    $this->form_validation->set_rules('QUANTITE_LITRE', 'Quantité litre', 'required');

    if ($this->form_validation->run() == FALSE) {
        $message = "<div class='alert alert-danger'>
        Type de bouteille non modifi&eacute;
        <button type='button' class='close' data-dismiss='alert'>&times;</button>
        </div>";
        $this->session->set_flashdata(array('message' => $message));
        
        // Load data for the view again
        $data['title'] = 'Taille de bouteille';
        $data['data'] = $this->Model->getRequeteOne('SELECT * FROM syst_taille_bouteille WHERE ID_TAILLE_BOUTEILLE = '.$ID_TAILLE_BOUTEILLE);
        $this->load->view('Type_Bouteille_Update_View', $data);
    } else {
        // Prepare data for updating the bottle size
        $datas = array(
            'DESCRIPTION' => $DESCRIPTION,
            'LIMITE_VIDE' => $LIMITE_VIDE,
            'LIMITE_PLEIN' => $LIMITE_PLEIN,
            'QUANTITE_LITRE' => $QUANTITE_LITRE
        );

        // Update the main table
        $this->Model->update('syst_taille_bouteille', array('ID_TAILLE_BOUTEILLE' => $ID_TAILLE_BOUTEILLE), $datas);

        // Update prices if provided
        if (!empty($ID_STANDARD) && is_array($ID_STANDARD)) {
            foreach ($ID_STANDARD as $index => $type) {
                $price_data = array(
                    'ID_STANDARD' => $type,
                    'MONTANT' => isset($PRIX_NORMAL[$index]) ? $PRIX_NORMAL[$index] : 0, // Ensure a default value if not set
                    'ID_TAILLE_BOUTEILLE' => $ID_TAILLE_BOUTEILLE // Add ID_TAILLE_BOUTEILLE
                );

                // Update each price entry
                $this->Model->update('standard_prix_status', 
                    array('ID_STANDARD_PRIX' => $this->input->post('ID_STANDARD_PRIX')[$index]), 
                    $price_data
                );
            }
        }

        $message = "<div class='alert alert-success' id='message'>
        Type de bouteille modifi&eacute; avec succés
        <button type='button' class='close' data-dismiss='alert'>&times;</button>
        </div>";
        $this->session->set_flashdata(array('message' => $message));
        redirect(base_url('configuration/Type_Bouteille/listing'));  
    }
}
public function prix_update($id)
  {

    $data['title']='Taille de bouteille';
    $data['data']=$this->Model->getRequeteOne('SELECT standard_prix_status.*,standard_status.DESCRIPTION FROM `standard_prix_status` JOIN standard_status ON standard_status.ID_STANDARD=standard_prix_status.ID_STANDARD WHERE ID_STANDARD_PRIX = '.$id.'');
    $this->load->view('Type_Bouteille_Update_prix_View',$data);

  }


  public function mone_update()
  {
    $ID_STANDARD_PRIX=$this->input->post('ID_STANDARD_PRIX');  
    $DESCRIPTION=$this->input->post('DESCRIPTION');  
    $MONTANT=$this->input->post('MONTANT');      
  


    $this->form_validation->set_rules('DESCRIPTION', 'Taille de la bouteille', 'required');
    $this->form_validation->set_rules('MONTANT', 'Limite Vide', 'required');   
    
    if ($this->form_validation->run() == FALSE){
      $message = "<div class='alert alert-danger'>
      Type de bouteille non modifi&eacute;
      <button type='button' class='close' data-dismiss='alert'>&times;</button>
      </div>";
      $this->session->set_flashdata(array('message'=>$message));
      $data['title']='Taille de bouteille';
      $data['data']=$this->Model->getRequeteOne('SELECT * FROM standard_prix_status WHERE ID_STANDARD_PRIX = '.$ID_STANDARD_PRIX.'');
      $this->load->view('Type_Bouteille_Update_prix_View',$data);
    }
    else{

      $datas=array(
        'MONTANT'=>$MONTANT,
      );
      $this->Model->update('standard_prix_status',array('ID_STANDARD_PRIX'=>$ID_STANDARD_PRIX),$datas);

      $message = "<div class='alert alert-success' id='message'>
      Type de bouteille modifi&eacute; avec succés
      <button type='button' class='close' data-dismiss='alert'>&times;</button>
      </div>";
      $this->session->set_flashdata(array('message'=>$message));
      redirect(base_url('configuration/Type_Bouteille/listing'));  
    }

  }

  public function desactiver($id)
  {
    $this->Model->update('syst_taille_bouteille',array('ID_TAILLE_BOUTEILLE'=>$id),array('ID_STATUS'=>2));
    $message = "<div class='alert alert-success' id='message'>
    Type de bouteille désactivé avec succés
    <button type='button' class='close' data-dismiss='alert'>&times;</button>
    </div>";
    $this->session->set_flashdata(array('message'=>$message));
    redirect(base_url('configuration/Type_Bouteille/listing'));  
  }

  public function reactiver($id)
  {
    $this->Model->update('syst_taille_bouteille',array('ID_TAILLE_BOUTEILLE'=>$id),array('ID_STATUS'=>1));
    $message = "<div class='alert alert-success' id='message'>
    Type de bouteille Réactivé avec succés
    <button type='button' class='close' data-dismiss='alert'>&times;</button>
    </div>";
    $this->session->set_flashdata(array('message'=>$message));
    redirect(base_url('configuration/Type_Bouteille/listing'));  
  }


  public function testmail()
  {
      // echo "string";
    $mail = 'gigigen03@gmail.com';
    $obj = 'Objet de test';
    $message = 'Corp du message de Test news';
    $this->notifications->newsend_mail($mail,$obj,NULL,$message,NULL);



  }


  public function newtestmail(){


    $this->email->from('gigigen03@gmail.com', 'Ghislain F');
    $this->email->to('ghislain@mediabox.bi');
    $this->email->subject('Email Test');
    $this->email->message('Testing the email class.');
      // $this->email->send();

    if (!$this->email->send())
    {
        // Generate error
      $this->email->print_debugger(array('headers'));
    }
    
  }


  public function newtest()
  {



      // require 'vendor/autoload.php';
  // use \Mailjet\Resources;
    $mj = new \Mailjet\Client('*********1234','***********abcd',true,['version' => 'v3.1']);
    $body = [
      'Messages' => [
        [
          'From' => [
            'Email' => "mvuyekurejustin@gmail.com",
            'Name' => "Justin"
          ],
          'To' => [
            [
              'Email' => "mvuyekurejustin@gmail.com",
              'Name' => "Justin"
            ]
          ],
          'Subject' => "Greetings from Mailjet.",
          'TextPart' => "My first Mailjet email",
          'HTMLPart' => "<h3>Dear passenger 1, welcome to <a href='https://www.mailjet.com/'>Mailjet</a>!</h3><br />May the delivery force be with you!",
          'CustomID' => "AppGettingStartedTest"
        ]
      ]
    ];
    $response = $mj->post(Resources::$Email, ['body' => $body]);
    $response->success() && var_dump($response->getData());



  }    



}