<?php 
 /**
  * 
  */
 class Production extends CI_Controller
 {

  function __construct()
  {
    parent::__construct();
    $this->load->library('Mylibrary');
    $this->ci = & get_instance();
    $this->ci->load->library("user_agent");
    $this->Is_Connected();
    // $this->verification();

  }

  public function Is_Connected()
  {

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




 public function index()
 {
  $title = "Enregistrement production";     
        // $data['typebout']=$this->Model->getList('syst_type_bouteille',array());
  $data['tailbout']=$this->Model->getList('syst_taille_bouteille',array());
  $data['lot']=$this->Model->getList('prod_lot',array('ID_STATUS'=>1));
  $data['title'] = $title;
  $this->load->view("Production_Add_View",$data);
}




function get_volume()
{
  $ID_LOT = $this->input->post('ID_LOT');

  $donne = $this->Model->getRequeteOne("SELECT ID_LOT, LOT_PRODUCTION,LOT_RESTANT, LOT_VOLUME, ID_STATUS FROM prod_lot WHERE ID_STATUS=1 AND ID_LOT=".$ID_LOT);
  
  $volume=$donne['LOT_RESTANT'];

  echo $volume;
}

public function add()
{
    //    
  $QUANTITE=$this->input->post('QUANTITE');
  $ID_TAILLE_BOUTEILLE=$this->input->post('ID_TAILLE_BOUTEILLE');
  $NOMBRE_BOX=$this->input->post('NOMBRE_BOX');
  $qte_taille=$this->Model->getOne('syst_taille_bouteille',array('ID_TAILLE_BOUTEILLE'=>$this->input->post('ID_TAILLE_BOUTEILLE')));
  $volume=floatval($qte_taille['QUANTITE_LITRE']) * intval($QUANTITE);

  $dataprod = array(          
    'DATE_PRODUCTION'=>$this->input->post('DATE_PRODUCTION'),  
    'ID_LOT'=>$this->input->post('ID_LOT'), 
    'QUANTITE_PRODUIT'=>$this->input->post('QUANTITE'), 
    'NOMBRE_BOX'=>$this->input->post('NOMBRE_BOX'),  
    'VOLUME_PRODUIT'=>$volume,
    'ID_TAILLE_BOUTEILLE'=>$this->input->post('ID_TAILLE_BOUTEILLE'), 
    'ID_USER'=>$this->session->userdata('SOCAR_ID_USER'),
  );

  $datastock = array(          
   'DATE_ENTREE_STOCK'=>$this->input->post('DATE_PRODUCTION'),  
   'QUANTITE'=>$this->input->post('QUANTITE'),  
   'ID_TYPE_BOUTEILLE'=>2,
   'ID_TAILLE_BOUTEILLE'=>$this->input->post('ID_TAILLE_BOUTEILLE'), 
   'ID_USER'=>$this->session->userdata('SOCAR_ID_USER'),

 );

  $datasortiestock = array(          
    'DATE_SORTIE_STOCK'=>$this->input->post('DATE_PRODUCTION'),  
    'QUANTITE'=>$this->input->post('QUANTITE'),  
    'ID_TYPE_BOUTEILLE'=>1,
    'ID_TAILLE_BOUTEILLE'=>$this->input->post('ID_TAILLE_BOUTEILLE'),
    'ID_USER'=>$this->session->userdata('SOCAR_ID_USER'),

  );

  $this->form_validation->set_rules('DATE_PRODUCTION', 'Date', 'required');
  $this->form_validation->set_rules('ID_LOT', 'Lot Production', 'required');     
  $this->form_validation->set_rules('QUANTITE', 'Quantite', 'required');
  $this->form_validation->set_rules('ID_TAILLE_BOUTEILLE', 'Taille bouteille', 'required');

    //SI Valide
  if ($this->form_validation->run() == FALSE){        

    $title = "Enregistrement production";

    $data['tailbout']=$this->Model->getList('syst_taille_bouteille',array());
    $data['lot']=$this->Model->getList('prod_lot',array('ID_STATUS'=>1));
    $data['title'] = $title;


    $message = "<div class='alert alert-danger' id='message'>
    Donne manquantes, Processus échoué.
    <button type='button' class='close' data-dismiss='alert'>&times;</button>
    </div>";


    $this->session->set_flashdata(array('message'=>$message));
    $this->load->view("Production_Add_View",$data);

  }else{
        // prod_production
    $stockin = $this->Model->getOne('stock_stock',array('ID_TYPE_BOUTEILLE'=>1,'ID_TAILLE_BOUTEILLE'=>$ID_TAILLE_BOUTEILLE));

    if($stockin['QUANTITE'] >= $this->input->post('QUANTITE')){

     $qteproduit= $this->Model->getRequeteOne("SELECT SUM(VOLUME_PRODUIT) AS QUUANTITE_PRODUIT FROM `prod_production` WHERE ID_LOT=".$this->input->post('ID_LOT'));
     $qtelot = $this->Model->getOne('prod_lot',array('ID_LOT'=>$this->input->post('ID_LOT')));

     $qteproduit_actuelle=$qteproduit['QUUANTITE_PRODUIT']+$volume;


     if($volume<=$qtelot['LOT_RESTANT']) {

      $pproduct = $this->Model->insert_last_id('prod_production',$dataprod);

      if($volume==$qtelot['LOT_VOLUME']){
      $qte_restant = intval($qtelot['LOT_RESTANT']) - intval($volume);
        $this->Model->update('prod_lot',array('ID_LOT'=>$this->input->post('ID_LOT')), array('ID_STATUS'=>2,'DATE_FIN'=>date("Y-m-d H:i:s"),'LOT_RESTANT'=>$qte_restant));

      }else if($volume<=$qtelot['LOT_RESTANT']){
         
        $qte_restant = intval($qtelot['LOT_RESTANT']) - intval($volume);

        $this->Model->update('prod_lot',array('ID_LOT'=>$this->input->post('ID_LOT')), array('DATE_FIN'=>date("Y-m-d H:i:s"),'LOT_RESTANT'=>$qte_restant));
      }


      $datast = $this->Model->insert_last_id('stock_entre_stock',$datastock);
        // if ($datast) {

      $veri = $this->Model->checkvalue('stock_stock',array('ID_TYPE_BOUTEILLE'=>2,'ID_TAILLE_BOUTEILLE'=>$ID_TAILLE_BOUTEILLE));
      if ($veri) {
            // unction update($table, $criteres, $data) {
        $stockac = $this->Model->getOne('stock_stock',array('ID_TYPE_BOUTEILLE'=>2,'ID_TAILLE_BOUTEILLE'=>$ID_TAILLE_BOUTEILLE));
        $this->Model->update('stock_stock',array('ID_TYPE_BOUTEILLE'=>2,'ID_TAILLE_BOUTEILLE'=>$ID_TAILLE_BOUTEILLE), array('QUANTITE'=>$stockac['QUANTITE']+$QUANTITE));
      }
      else{
        $this->Model->insert_last_id('stock_stock',array('ID_TYPE_BOUTEILLE'=>2,'ID_TAILLE_BOUTEILLE'=>$ID_TAILLE_BOUTEILLE,'QUANTITE'=>$QUANTITE));
      }
        // }

      $estock = $this->Model->insert_last_id('stock_sortie_stock',$datasortiestock);
      if ($estock) {

        $veristock = $this->Model->checkvalue('stock_stock',array('ID_TYPE_BOUTEILLE'=>1,'ID_TAILLE_BOUTEILLE'=>$ID_TAILLE_BOUTEILLE));
        if ($veristock) {
            // unction update($table, $criteres, $data) {
          $stockac = $this->Model->getOne('stock_stock',array('ID_TYPE_BOUTEILLE'=>1,'ID_TAILLE_BOUTEILLE'=>$ID_TAILLE_BOUTEILLE));
          $this->Model->update('stock_stock',array('ID_TYPE_BOUTEILLE'=>1,'ID_TAILLE_BOUTEILLE'=>$ID_TAILLE_BOUTEILLE), array('QUANTITE'=>$stockac['QUANTITE']-$QUANTITE));
        }

      }


      $message = "<div class='alert alert-success'  id='message'>
      Enregistrement fait avec succès.
      <button type='button' class='close' data-dismiss='alert'>&times;</button>
      </div>";       
      $this->session->set_flashdata(array('message'=>$message));
      redirect(base_url('production/Production'));
    }else{
      $message = "<div class='alert alert-danger'  id='message'>
      Vous avez depasse le volume du lot
      <button type='button' class='close' data-dismiss='alert'>&times;</button>
      </div>";       
      $this->session->set_flashdata(array('message'=>$message));
      redirect(base_url('production/Production'));
    }

  }else{
    $message = "<div class='alert alert-danger'  id='message'>
    Il y'a manque de bouteille
    <button type='button' class='close' data-dismiss='alert'>&times;</button>
    </div>";       
    $this->session->set_flashdata(array('message'=>$message));
    redirect(base_url('production/Production'));
  }

}
}



public function listing()
{

  $data['title'] = "Production";
  $this->load->view('Production_List_View',$data);

}



public function listinglot()
{

  $data['title'] = "Production";
  $this->load->view('Production_List_Lot_View',$data);

}


public function deleted()
{

  $data['title'] = "Production";
  $this->load->view('Production_Deleted_View',$data);

}

public function suppression($id)
{
  $ID_PRODUCTION=$id;  
  $olddata = $this->Model->getOne('prod_production',array('ID_PRODUCTION'=>$ID_PRODUCTION));

  $dataprod = array(          
    'ID_PRODUCTION'=>$ID_PRODUCTION,  
    'ID_TAILLE_BOUTEILLE'=>$olddata['ID_TAILLE_BOUTEILLE'],  
    'QUANTITE_PRODUIT'=>$olddata['QUANTITE_PRODUIT'], 
    'DATE_PRODUCTION'=>$olddata['DATE_PRODUCTION'],
    'ID_LOT'=>$olddata['ID_LOT'],        
    'ID_USER'=>$olddata['ID_USER'],        
    'USER_DELETED'=>$this->session->userdata('SOCAR_ID_USER'),
  );

  $estock = $this->Model->insert_last_id('deleted_prod_production',$dataprod);

  if ($estock) {
    $this->Model->delete('prod_production',array('ID_PRODUCTION'=>$ID_PRODUCTION));
    $this->Model->delete('stock_entre_stock',array('DATE_ENTREE_STOCK'=>$olddata['DATE_PRODUCTION'],'QUANTITE'=>$olddata['QUANTITE_PRODUIT'], 'ID_TYPE_BOUTEILLE'=>2,'ID_TAILLE_BOUTEILLE'=>$olddata['ID_TAILLE_BOUTEILLE']));
    $this->Model->delete('stock_sortie_stock',array('DATE_SORTIE_STOCK'=>$olddata['DATE_PRODUCTION'],'QUANTITE'=>$olddata['QUANTITE_PRODUIT'], 'ID_TYPE_BOUTEILLE'=>1,'ID_TAILLE_BOUTEILLE'=>$olddata['ID_TAILLE_BOUTEILLE']));

    $stockacdeux = $this->Model->getOne('stock_stock',array('ID_TYPE_BOUTEILLE'=>2,'ID_TAILLE_BOUTEILLE'=>$olddata['ID_TAILLE_BOUTEILLE']));
    $this->Model->update('stock_stock',array('ID_TYPE_BOUTEILLE'=>2,'ID_TAILLE_BOUTEILLE'=>$olddata['ID_TAILLE_BOUTEILLE']), array('QUANTITE'=>$stockacdeux['QUANTITE']-$olddata['QUANTITE_PRODUIT']));

    $stockac = $this->Model->getOne('stock_stock',array('ID_TYPE_BOUTEILLE'=>1,'ID_TAILLE_BOUTEILLE'=>$olddata['ID_TAILLE_BOUTEILLE']));
    $this->Model->update('stock_stock',array('ID_TYPE_BOUTEILLE'=>1,'ID_TAILLE_BOUTEILLE'=>$olddata['ID_TAILLE_BOUTEILLE']), array('QUANTITE'=>$stockac['QUANTITE']+$olddata['QUANTITE_PRODUIT']));

    $this->Model->update('prod_lot',array('ID_LOT'=>$olddata['ID_LOT']), array('ID_STATUS'=>1));
          // $datastock = ;

          //  $datasortiestock = ;
    $message = "<div class='alert alert-danger'  id='message'>
    Suppression fait avec succès.
    <button type='button' class='close' data-dismiss='alert'>&times;</button>
    </div>";       
    $this->session->set_flashdata(array('message'=>$message));
    redirect(base_url('production/Production/listing'));



  }
}


}                        