<?php
class Gastos_models extends CI_Model
{
    public function __construct()
    {
        parent::__construct();
    }

  /*  public function listGastos(){
      $this->db->select('u.NombreUsuario, g.IdGasto, g.Fecha_de_pago, g.Concepto, g.Cantidad, g.Precio, g.Total, g.comprobante,f.NombreFranquicia');
      $this->db->from('usuarios u');
      $this->db->join('gastos g','u.IdUsuarios = g.IdUsuarios','inner');
      $this->db->join('franquicias f','g.IdFranquicias = f.IdFranquicias','inner');
      $this->db->where('g.IdUsuarios', 21);
      $this->db->where('Franquicias_IdFranquicias', 20);
      $this->db->where('g.Status', 0);
      $query=$this->db->get();
      //$query= $data->result_array();
      $gasto=[];
      if ($query->num_rows() > 0) {         
          foreach($query->result() as $fila){
              $gasto[] = array(
                  $fila['Concepto'], 
                  $fila->Tipo,
                  $fila->Cantidad, 
                  $fila->Precio, 
                  $fila->Total, 
                  $fila->IdUsuarios,
                  $fila->Comprobante
              );
          }         
      } 
      var_dump($gasto);
      exit();
     echo json_encode($gasto);     

   }*/


  /*Función para buscar Id de franquicia mediante el Id del usuario en sesión*/
  public function IdFranquicia(){
    $this->db->select('Franquicias_IdFranquicias');
    $this->db->from('usuarios');
    $this->db->where('IdUsuarios', $this->session->userdata('IdUsuarios'));
    $data=$this->db->get();
    return $data->row()->Franquicias_IdFranquicias;
  }

  public function obtenerFranquicia(){
    $this->db->select('f.NombreFranquicia');
    $this->db->from('franquicias f');
    $this->db->join('usuarios u','f.IdFranquicias = u.Franquicias_IdFranquicias','inner');
    $this->db->where('IdUsuarios', $this->session->userdata('IdUsuarios'));
    $data=$this->db->get();
    return $data->row()->NombreFranquicia;
  }

  //select nombreGasto from gastos order by IdGasto DESC limit 1
  public function obtenerGasto(){
    $this->db->select('IdGasto, NombreGasto');
    $this->db->from('gastos');
    $this->db->order_by('IdGasto', 'DESC');
    $this->db->limit(1); 

    $data=$this->db->get();
    return $data->row();
  }

  public function obtenerGastoUpdate($idGasto){
    $this->db->select('NombreGasto');
    $this->db->from('gastos');
    $this->db->where('IdGasto', $idGasto);

    $data=$this->db->get();
    return $data->row()->NombreGasto;
  }

  /*end*/

   /*SELECT u.NombreUsuario, g.Fecha_de_pago, g.Tipo, g.Concepto, g.Cantidad, g.Precio, g.Total, g.comprobante,f.NombreFranquicia 
   FROM usuarios u INNER JOIN gastos g 
   ON u.IdUsuarios = g.IdUsuarios INNER JOIN franquicias f 
   ON g.IdFranquicias = f.IdFranquicias where g.IdUsuarios=21 
   AND `Franquicias_IdFranquicias` = 20
   --union de las tablas usuario, gastos y franquicia...seleciona todos los registros cuyo usuario = "" y franquicia = "" siempre y cuando el gasto este aun activo.--*/

   /*seleccionar todos los gastos que pertenezcan a tal franquicia siempre*/
   public function BuscarGastos($inicio, $fin){
    $this->db->select('Franquicias_IdFranquicias');
    $this->db->from('usuarios');
    $this->db->where('IdUsuarios', $this->session->userdata('IdUsuarios'));
    $data=$this->db->get();

    $this->db->select('g.IdGasto, g.NombreArchivo,g.FechaCreacion, g.Tipo, g.NombreGasto, g.Cantidad, g.Precio, g.Total, u.NombreUsuario, g.Ruta');
    $this->db->from('usuarios u');
    $this->db->join('gastos g','u.IdUsuarios = g.IdUsuarios','inner');/*
    $this->db->join('franquicias f','g.IdFranquicias = f.IdFranquicias','inner'); */   
    $this->db->where('g.IdFranquicias', $data->row()->Franquicias_IdFranquicias); 
    $this->db->where('g.FechaCreacion >=', $inicio.' 00:00:00');
    $this->db->where('g.FechaCreacion <=', $fin.' 23:59:59');
    $this->db->order_by('IdGasto', 'DESC');   
    $data1=$this->db->get();
    $query= $data1->result_array();

    if ($query) {
      return $query;
    }else{
      return "ErrorModel";
    }
  }
  public function insertGastos($gasto, $tipoGasto, $cantidadGasto, $precioGasto){
   //date_default_timezone_set('America/Mexico_City');
    // notación inglesa sin separador de millares
        //$precio = number_format($precioGasto, 2, '.', ',');
        // 1234.57
        //var_dump($english_format_number);
    $data = array(
      'Tipo' => $tipoGasto,
      'NombreGasto' => $gasto,
      'Cantidad' => $cantidadGasto,
      'Precio' => $precioGasto,
      'Total' => ($cantidadGasto*floatval($precioGasto)),
      'IdUsuarios' =>  $this->session->userdata('IdUsuarios'),
      'IdFranquicias' => $this->Gastos_models->IdFranquicia()      
      //'FechaCreacion' => //date("Y-m-d H:i:s")//'2020-02-10 12:25:52'      
    );

    $response = $this->db->insert('gastos', $data);
    $id=$this->db->insert_id();

    if ($response) 
      return $id;
    else
      return "Ocurrio un error...";
  }
  //UPDATE `gastos` SET `nombreArchivo`= 'CORPORATIVO MODEL ART SPA__20200224162855.jpg',`Comprobante`= 'files/ComprobantesGasto/CORPORATIVO MODEL ART SPA__20200224162855.jpg' WHERE 8
  public function updateInsert($nombreArchivo, $path, $id){
    $data = array(
      'NombreArchivo' => $nombreArchivo,
      'Ruta' => $path
    );
    $this->db->SET($data);
    //$this->db->set('nombreArchivo', $nombreArchivo ); 
    //$this->db->set('título', $título );
    $this->db->where('IdGasto', $id);
    $this->db->update('gastos', $data);
    $res=$this->db->affected_rows();
    return $res."Actualización realizada exitosamente";
  }

  public function updateGasto($idGasto, $tipoGastoUpdate, $txtgastoUpdate, $cantidadGastoUpdate, $precioGastoUpdate, $nombre, $path){
    //date_default_timezone_set('America/Mexico_City');
    $data = array(
      'Tipo' => $tipoGastoUpdate,
      'NombreGasto' => $txtgastoUpdate,
      'Cantidad' => $cantidadGastoUpdate,
      'Precio' => $precioGastoUpdate,
      'Total' => $cantidadGastoUpdate*$precioGastoUpdate,
      'NombreArchivo' => $nombre,
      'Ruta' => $path,
      'IdUsuarios' =>  $this->session->userdata('IdUsuarios'),
      'IdFranquicias' => $this->Gastos_models->IdFranquicia()     
      //'FechaModificacion' => date("Y-m-d H:i:s")//'2020-02-10 12:25:52' 
    );
    $this->db->set($data);
    $this->db->where('IdGasto', $idGasto);
    $this->db->update('gastos');

    return $idGasto;
  }
  /*Ver datos...  
  select *from gastos where IDGasto = id;*/
  public function obtenerDatos($id){
    $this->db->select('*');
    $this->db->from('gastos');
    $this->db->where('IdGasto', $id);

    $query = $this->db->get();
    
    if ($query->num_rows() > 0) {
      return $query->row();
    }else{
      return null;
    }
  }
  public function ruta($id){
    $this->db->select('Ruta');
    $this->db->from('gastos');
    $this->db->where('IdGasto', $id);

    $data=$this->db->get();
    return $data->row();
  }

  /*Delete gasto*/
  public function deleteArchivo($id){
    $data = array(
      'NombreArchivo' => '',
      'Ruta' => ''
    );
    $this->db->SET($data);
    //$this->db->set('nombreArchivo', $nombreArchivo ); 
    //$this->db->set('título', $título );
    $this->db->where('IdGasto', $id);
    $this->db->update('gastos', $data);
    $res=$this->db->affected_rows();
    return $res."Actualización realizada exitosamente";
  }

  public function deleteGasto($id){
    $this->db->where('IdGasto', $id);
    $this->db->delete('gastos');

    return "Eliminación realizada exitosamente";
  }

  // public function prueba(){
  //   //select SUM(Contado1)+SUM(CTarjeta1)+SUM(CTarjeta2)+SUM(CTarjeta3)+SUM(CTarjeta4) as total 
  //   //from ventas_has_serviciosfranquicias;
  //   $query0 = $this->db->select('SUM(Contado1)+SUM(CTarjeta1)+SUM(CTarjeta1A)+SUM(ifnull(CTarjeta2,0))+SUM(ifnull(CTarjeta3,0))+SUM(ifnull(CTarjeta4,0)) as total');
  //   $query0 = $this->db->get('ventas_has_serviciosfranquicias');
  //   $this->db->where('Fecha1 ')
  //   $result0 = $query0->result();


  //   // $query1 = $this->db->select('SUM(Contado1)+SUM(CTarjeta1)+SUM(CTarjeta2)+SUM(CTarjeta3)+SUM(CTarjeta4) as total');
  //   // $query1 = $this->db->get('ventas_has_serviciosfranquicias');
  //   // $result1 = $query->result();

  //   // $query2 = $this->db->select('SUM(Contado1)+SUM(CTarjeta1)+SUM(CTarjeta2)+SUM(CTarjeta3)+SUM(CTarjeta4) as total');
  //   // $query2 = $this->db->get('ventas_has_serviciosfranquicias');
  //   // $result2 = $query->result();

  //   //$result
  //   return $result0;
  // }
}
?>