<?php
class ReporteIngresos_Model extends CI_Model
{ 

  public function reporteIngresosM($inicio,$fin){
    $total = $this->BuscarVentasCompletasDetalle($inicio,$fin);
    return $total;
  }

  public function BuscarVentasCompletasDetalle($inicio,$fin){
    $data = [];
    $vendido = [];
    
    $total = $this->VentasGeneral($inicio,$fin);
    $numeroVentas = count($total->result());
    if($numeroVentas != null){

      if(count($total->result()) != null ){
      foreach($total->result() as $ventasGeneral) {
        $totalVendido = [];
        $vendido['productos'] = $this->BuscarDetalleProductos($ventasGeneral->IdVentas);
        $vendido['promociones'] = $this->BuscarDetallePromociones($ventasGeneral->IdVentas);
        $vendido['serviciosGenerales']  = $this->BuscarDetalleServiciosGenerales($ventasGeneral->IdVentas);
        $vendido['serviciosFranquicia'] = $this->BuscarDetalleServiciosFranquicia($ventasGeneral->IdVentas);


        if($vendido['productos']   != null){
            foreach($vendido['productos']   as $productos) {
            $totalVendido[] = array(
                        $productos->NombreProducto,
                        );
          }
        }
        if($vendido['promociones']   != null){
            foreach($vendido['promociones']   as $promociones) {
            $totalVendido[] = array(
                        $promociones->NombrePromocion,
                        );
          }
        }
        if($vendido['serviciosGenerales']   != null){
            foreach($vendido['serviciosGenerales']   as $serviciosGenerales) {
            $totalVendido[] = array(
                        $serviciosGenerales->NombreServicio,
                        );
          }
        }
         if($vendido['serviciosFranquicia']   != null){
            foreach($vendido['serviciosFranquicia']   as $serviciosFranquicia) {
            $totalVendido[] = array(
                        $serviciosFranquicia->NombreServicio,
                        );
          }
        }

        //por cada venta buscar en productos servicios y Promociones para saber q vendio
        $data[] = array(
          $ventasGeneral->folio,
          $ventasGeneral->FechaVenta, 
          $ventasGeneral->ClienteVenta,
          $totalVendido ,
          $ventasGeneral->FechaVenta,
          $ventasGeneral->VendedorUsuario,
          $ventasGeneral->Contado,
          $ventasGeneral->CantidadTarjetaUno,
           $ventasGeneral->TipoPagoUno,
          
          /*$ventasGeneral->folio,*/
        );
        
      }
    }
       return $data;
    }
    else{
      //no tiene Ventas
      return $data;
    }
   
  }



  public function VentasGeneral($inicio,$fin){
    $idFranquicia =  $this->BuscarIdFranquicia();
    $this->db->select("*");
    $this->db->where( 'FechaVenta >=', $inicio.' 00:00:00');
    $this->db->where( 'FechaVenta <=', $fin.' 23:59:59');
    $this->db->where('ventas.franquicias_IdFranquicias',$idFranquicia);
    $this->db->where('ventas.EstatusV', 'ACTIVA');
    $this->db->from('ventas');
    $query = $this->db->get();  
    return $query;
  }


  public function BuscarDetalleProductos($folio){
    $this->db->select("*");
    $this->db->join('productosfranquicias','IdProductosFranquicias=productosfranquicias_IdProductosFranquicias','inner');
    $this->db->join('productosgenerales','IdProductosGenerales=ProductosGenerales_IdProductosGenerales','inner');
    $this->db->where( 'ventas_IdVentas', $folio);
    $this->db->from('ventas_has_productosfranquicias');
    $query = $this->db->get();
    return $query->result();
  }

  public function BuscarDetallePromociones($folio){
    $idFranquicia =  $this->BuscarIdFranquicia();
    $this->db->select("*");
    $this->db->join('promociones','IdPromociones=promociones_IdPromociones','inner');
   /* $this->db->where( 'Franquicias_IdFranquicias', $idFranquicia);*/
    $this->db->from('ventas_has_promociones');
    $this->db->where( 'ventas_IdVentas', $folio);
    $query = $this->db->get();
    return $query->result();
  }
  public function BuscarDetalleServiciosGenerales($folio){
    $this->db->select("*");
    $this->db->join('serviciosgenerales','Codigo_Servicios=serviciosfranquicias_IdServiciosFranquicias ','inner');
    
    /*$this->db->where( 'ventas_IdVentas', '82018-09-1311:03:06');*/
    $this->db->from('ventas_has_serviciosfranquicias');
    $this->db->where( 'ventas_IdVentas', $folio);

    $query = $this->db->get();
    return $query->result();
  }
   public function BuscarDetalleServiciosFranquicia($folio){
    $this->db->select("*");
    $this->db->join('serviciosfranquicias','IdServiciosFranquicias=serviciosfranquicias_IdServiciosFranquicias','inner');
    $this->db->join('serviciosgenerales','IdServiciosGenerales=ServiciosGenerales_IdServiciosGenerales','inner');
    $this->db->where( 'ventas_IdVentas', $folio);
    $this->db->from('ventas_has_serviciosfranquicias');
    $query = $this->db->get();
    return $query->result();
   }


  public function reportePagosServicios($inicio,$fin){
    $data = [];
  
    $data['F2'] = $this->reportePagosServiciosF($inicio,$fin,'Fecha2');
    $data['F3'] = $this->reportePagosServiciosF($inicio,$fin,'Fecha3');
    $data['F4'] = $this->reportePagosServiciosF($inicio,$fin,'Fecha4');
    $data['F2G'] = $this->reportePagosServiciosGeneralesF($inicio,$fin,'Fecha2');
    $data['F3G'] = $this->reportePagosServiciosGeneralesF($inicio,$fin,'Fecha3');
    $data['F4G'] = $this->reportePagosServiciosGeneralesF($inicio,$fin,'Fecha4');

    return $data;
  }

  public function reportePagosServiciosF($inicio,$fin, $fecha){
    $idFranquicia =  $this->BuscarIdFranquicia();
    $this->db->select("*");
    $this->db->join('ventas','IdVentas=ventas_idVentas','inner');
    $this->db->join('serviciosfranquicias','IdServiciosFranquicias=serviciosfranquicias_IdServiciosFranquicias','inner');
    $this->db->join('serviciosgenerales','IdServiciosGenerales=ServiciosGenerales_IdServiciosGenerales','inner');
    $this->db->where('ventas.franquicias_IdFranquicias',$idFranquicia);
    $this->db->where( $fecha.'>=', $inicio.' 00:00:00');
    $this->db->where( $fecha.'<=', $fin.' 23:59:59');
    $this->db->where('ventas.EstatusV', 'ACTIVA');
    $this->db->from('ventas_has_serviciosfranquicias');
    $query = $this->db->get();
    return $query;
  }

  public function reportePagosServiciosGeneralesF($inicio,$fin, $fecha){
    $idFranquicia =  $this->BuscarIdFranquicia();

    $this->db->select("*");
    $this->db->join('ventas','IdVentas=ventas_idVentas','inner');
    $this->db->join('serviciosgenerales','Codigo_Servicios=serviciosfranquicias_IdServiciosFranquicias ','inner');
    $this->db->where('ventas.franquicias_IdFranquicias',$idFranquicia);
    $this->db->where( $fecha.'>=', $inicio.' 00:00:00');
    $this->db->where( $fecha.'<=', $fin.' 23:59:59');
    $this->db->where('ventas.EstatusV', 'ACTIVA');
    $this->db->from('ventas_has_serviciosfranquicias');
    $query = $this->db->get();
    return $query;
      
  }


  public function reportePagosPromociones($inicio,$fin){
    $data = [];
    $data['F2'] = $this->reportePagosPromocionesF($inicio,$fin,'Fecha2');
    $data['F3'] = $this->reportePagosPromocionesF($inicio,$fin,'Fecha3');
    $data['F4'] = $this->reportePagosPromocionesF($inicio,$fin,'Fecha4');


    return $data;
  }


  public function reportePagosPromocionesF($inicio,$fin, $fecha){
    $idFranquicia =  $this->BuscarIdFranquicia();

    $this->db->select("*");
    $this->db->join('ventas','IdVentas=ventas_idVentas','inner');
    $this->db->join('promociones','IdPromociones=promociones_IdPromociones','inner');
    $this->db->where('ventas.franquicias_IdFranquicias',$idFranquicia);
    $this->db->where( $fecha.'>=', $inicio.' 00:00:00');
    $this->db->where( $fecha.'<=', $fin.' 23:59:59');
    $this->db->where('ventas.EstatusV', 'ACTIVA');
    $this->db->from('ventas_has_promociones');
    $query = $this->db->get();
    return $query;
      
  }



   public function reportePagosProductos($inicio,$fin){
    $data = [];
    $data['F2'] = $this->ProductosF($inicio,$fin,'Fecha2');
   /* $data['F3'] = $this->reportePagosProductosF($inicio,$fin,'Fecha3');*/
   /* $data['F4'] = $this->reportePagosProductosF($inicio,$fin,'Fecha4');*/


    return $data;
  }


  public function ProductosF($inicio,$fin, $fecha){
    $idFranquicia =  $this->BuscarIdFranquicia();

    $this->db->select("*");
    $this->db->join('ventas','IdVentas=ventas_idVentas','inner');
    $this->db->join('productosfranquicias','IdProductosFranquicias=productosfranquicias_IdProductosFranquicias','inner');
    $this->db->join('productosgenerales','IdProductosGenerales=ProductosGenerales_IdProductosGenerales','inner');
    $this->db->where('ventas.franquicias_IdFranquicias',$idFranquicia);
    $this->db->where( $fecha.'>=', $inicio.' 00:00:00');
    $this->db->where( $fecha.'<=', $fin.' 23:59:59');
    $this->db->where('ventas.EstatusV', 'ACTIVA');
    $this->db->from('ventas_has_productosfranquicias');
    $query = $this->db->get();
    return $query;
      
  }
 
   public function BuscarIdFranquicia(){
     $this->db->select('*');
     $this->db->from('usuarios');
     $this->db->join('franquicias','Franquicias_IdFranquicias=IdFranquicias','inner');
     $this->db->where('IdUsuarios',$this->session->userdata('IdUsuarios'));
     $query=$this->db->get();
       if ($query->num_rows() > 0) { 
        foreach($query->result() as $row) 
              return $row->IdFranquicias; }
  } 
  

}
?>