<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Proveedores extends CI_Controller {

	public function __construct() {
		parent::__construct();
		if (!$this->Usuario->try()) {
			redirect('login');
		}

		// Load database
		$this->load->model('Proveedor_model', 'Proveedor', true);
	}

	/**
	 * Muestra listado de proveedores ordenados por orden alfabético
	 * En la parte superior existe un formulario para agregar un nuevo proveedor
	 */
	public function index() {
		//Se consultan proveedores ordenados por nombre
		$data['proveedores'] = $this->Proveedor->get_all();
		$data['view'] = 'proveedores/index';
		$data['title'] = 'Proveedores';
		$data['content'] = $this->load->view('proveedores/index', $data , true);
		$this->load->view('default', $data);
	}

	public function save() {
		//Se revisa si se está creando un proveedor
		if ($this->input->post('nombre')) {
			$post = getPost($this->input, ['id', 'nombre', 'distribuidor']);
			$result = $this->Proveedor->save($post);
			echo json_encode($result);
		}
	}

	/**
	 * Elimina un proveedor de la lista, llevandolo a deleted 1
	 * se mantienen todas sus compras y ventas
	 */
	public function delete() {
		if ($this->input->post('id')) {
			$result = $this->Proveedor->delete($this->input->post('id'));
			return true;
			die;
		}
		return false;
	}

	public function get() {
		//Se revisa si se está creando un proveedor
		if (!empty($this->input->post('id'))) {
			$result = $this->Proveedor->get($this->input->post('id'));
		}
		else if(!empty($this->input->get('id'))) {
			$result = $this->Proveedor->get($this->input->get('id'));
		}
		else {
			$result['error'] = TRUE;
		}
		echo json_encode($result);
	}

	/**
	 * Muestra información de un proveedor
	 */
	public function view($id, $seccion = 'facturas') {
		//$data['proveedor'] = $this->Proveedor->full_info($id);
		$data['id'] = $id;
		$data['seccion'] = $seccion;

		if ($seccion == 'facturas') {
			$data['periodo'] = $filtros['periodo'] = $this->input->get('periodo') ?? date('Ym');
			$data['tipo_compra'] = $filtros['tipo_compra'] = $this->input->get('tipo_compra') ?? 1;
		}
		if ($seccion == 'productos') {
			$data['existencias'] = $filtros['existencias'] = $this->input->get('existencias') ?? 'disponibles'; // Por defecto muestra disponibles
			$data['categoria'] = $filtros['categoria'] = $this->input->get('categoria') ?? ''; // Por defecto muestra todos

			$parametros = '?';
			$cantidad = 100;
			$pagina = $this->input->get('pagina') ?? 1;
			$inicio = ($pagina - 1) * $cantidad;
			$filtros['inicio'] = $inicio;
			$filtros['cantidad'] = $cantidad;

			$parametros .= 'existencias='.$data['existencias'].'&categoria='.$data['categoria'];
		}

		$data['proveedor'] = $this->Proveedor->detalle($id, $seccion, $filtros);
		$data['proveedores'][$data['proveedor']['id']] = $data['proveedor']['nombre'];

		// Obtiene datos para editar compra
		$data = $this->Compra->datos_editar($data);

		if ($seccion == 'productos') {
			$data['paginacion'] = paginacion(['url' => base_url().'proveedores/view/'.$id.'/productos', 'parametros' => $parametros, 'total' => $data['proveedor']['total'], 'pagina' => $pagina, 'cantidad' => $cantidad]);
			// Obtiene datos para editar producto
			$this->load->model('marketplace_model');
			$data['marketplaces'] = $this->marketplace_model->lista_marketplaces();
			$data['marketplaces_detalles'] = $this->marketplace_model->get_marketplaces();

			$data['cabeceras'] = [
				'ps_id' => ['nombre' => 'PS', 'class'=>'text-center'],
				'nombre' => ['nombre' => 'Nombre', 'class'=>''],
				'disponibles' => ['nombre' => 'Disponibles', 'class'=>'text-center'],
				'ps_stock' => ['nombre' => 'Stock PS', 'class'=>'text-center'],
				'marketplaces' => ['marketplaces'],
				'acciones' => ['nombre'=> 'Acciones', 'class' => 'text-center']
			];

			$data['cabeceras']['acciones'] =['nombre'=> 'Acciones', 'class' => 'text-center'];

			$data = $this->Producto->datos_editar($data);
		}

		$data['title'] = $data['proveedor']['nombre'];
		$data['content'] = $this->load->view('proveedores/view', $data , true);

		$this->load->view('default', $data);

		/*

		$data['title'] = 'Proveedor';

		$data['productos'] = $this->Producto->lista();
		$data['costo_productos'] = $this->Producto->list_costos();

		$data['tipos_compras'] = $this->Compra->list_tipos();

		$data = $this->Producto->get_globales($data);
		$data['proveedoresNombres'] = array_flip($data['proveedores']);

		$data['proveedor']['productos'] = $this->Proveedor->productos($id);

		$data['cabeceras'] = [
			'ps_id' => ['nombre' => 'PS', 'class'=>'text-center'],
			'nombre' => ['nombre' => 'Nombre', 'class'=>''],
			'disponibles' => ['nombre' => 'Disponibles', 'class'=>'text-center'],
			'ps_stock' => ['nombre' => 'Stock PS', 'class'=>'text-center'],
			'marketplaces' => ['marketplaces'],
			'acciones' => ['nombre'=> 'Acciones', 'class' => 'text-center']
		];

		$data['cabeceras']['acciones'] =['nombre'=> 'Acciones', 'class' => 'text-center'];

		$data['content'] = $this->load->view('proveedores/view', $data , true);
		$this->load->view('default', $data);
		*/
	}
}
