<?php

namespace App\Modules\Visitas\Models;

use Illuminate\Database\Eloquent\Model;
use DB;
class Visita extends Model
{
    protected $guarded = [];
	protected $fillable = [];
	protected $table_h = 'herramientas';

	public function show_all($id){
		try{
			$show = Visita::with(['entidad','oficinas','empleados','motivos'])->where('id',$id)->get();
			return $show;
		} catch (\Exception $e) {
	    	report($e);
        	return false;
	    }
	}
	public function show_all_full($data){
		try{
			if (!empty($data['desde_fecha']) OR !empty($data['hasta_fecha'])) {
				$show = Visita::with(['entidad','oficinas','empleados','motivos'])->whereBetween('fecha',array($data['desde_fecha'],$data['hasta_fecha']))->get();
			}else{
				$show =  Visita::with(['entidad','oficinas','empleados','motivos'])->orderBy('id', 'DESC')->get();
			}
			$show->map(function($c){
	            $c->items_json = json_decode($c->items_json);
	        });
			return $show;
		} catch (\Exception $e) {
	    	report($e);
        	return false;
	    }
	}

	public function get_by_id_utilitarios($id){
		return DB::table($this->table_h)
		->where('visitas_id',$id)
		->get();
	}
	public function insert_utilitarios(){
		DB::table($this->table_h)
		->insert([
		 	'nombre' => $this->nombre, 
		 	'marca' => $this->marca,
		 	'serial'=> $this->serial,
		 	'visitas_id'=>$this->id
		]);
	}
	public function update_utilitarios($id){
		$exist = DB::table($this->table_h)->where('id',$this->idherramienta)->first();

		if (!empty($exist) AND $this->idherramienta) {
			DB::table($this->table_h)
			->where('id',$this->idherramienta)
			->update([
			 	'nombre' => $this->nombre, 
			 	'marca' => $this->marca,
			 	'serial'=> $this->serial
			]);

		}else{
			$this->insert_utilitarios();
		}
	}
	public function get_utilitarios($id){
		return DB::table('herramientas')->where('visitas_id',$id)->get();
	}

	public function Entidad(){
		return $this->belongsTo('\App\Modules\Catalogo\Models\Entidad');
	}
	public function oficinas(){
		return $this->belongsTo('\App\Modules\Visitas\Models\Oficina');
	}
	public function empleados(){
		return $this->belongsTo('\App\Modules\Visitas\Models\Empleado');
	}
	public function motivos(){
		return $this->belongsTo('\App\Modules\Visitas\Models\Motivo');
	}
}
