<?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);
    // print_r($volume);exit();
     $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'),
        );
// print_r($dataprod);exit();
    $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['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;
      
      

        $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 >= $this->input->post('QUANTITE')){

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

        if($pproduct){

          $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')));

          if($qteproduit['QUUANTITE_PRODUIT']==$qtelot['LOT_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")));

          }else if($qteproduit['QUUANTITE_PRODUIT']<=$qtelot['LOT_VOLUME']){
            $qte_restant = intval($qtelot['LOT_VOLUME']) - intval($qteproduit['QUUANTITE_PRODUIT']);

             $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'>
        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'));
     


        }
    }


 }                        