<?php
namespace Incoviba\nuevo\Venta;

use Incoviba\Common\Definition\hasEstado;
use Incoviba\Common\Alias\NewModel;

/**
 * 
 * @author Aldarien
 * @property int id
 * @property Venta venta_id
 *
 */
class Postventa extends NewModel
{
	use hasEstado;
	
	protected static $_table = 'postventas';
	
	public function venta()
	{
		return $this->belongs_to(Venta::class, 'venta_id')->findOne();
	}
	public function observaciones()
	{
		return $this->has_many_through(Observacion::class, PostventaObservacion::class, 'postventa_id', 'observacion_id')->findMany();
	}
	public function observacionesPendientes()
	{
		return $this->has_many_through(Observacion::class, PostventaObservacion::class, 'postventa_id', 'observacion_id')
			->select('observaciones.*')
			->rawJoin('JOIN (SELECT e1.* FROM (SELECT MAX(id) AS id, observacion_id FROM estado_observaciones GROUP BY observacion_id) e0 JOIN estado_observaciones e1 ON e1.id = e0.id)', ['ep.observacion_id', '=', 'observaciones.id'], 'ep')
			->leftOuterJoin('tipo_estado_observaciones', ['tipo_estado_observaciones.id', '=', 'ep.tipo_estado_observacion_id'])
			->where('tipo_estado_observaciones.descripcion', 'ingresada')
			->findMany();
	}
}
?>