<?php
namespace Incoviba\nuevo\Inmobiliaria;

use Incoviba\Common\Alias\NewModel;

/**
 * 
 * @author Aldarien
 * @property int id
 * @property Inmobiliaria inmobiliaria_rut
 * @property string descripcion
 * @property CategoriaCuentaContable categoria_id
 *
 */
class CuentaContable extends NewModel
{
	protected static $_table = 'cuenta_contables';
	
	public function inmobiliaria()
	{
		return $this->belongsTo(Inmobiliaria::class, 'inmobiliaria_rut', 'rut')->findOne();
	}
    public function categoria()
    {
    	return $this->belongsTo(CategoriaCuentaContable::class, 'categoria_id')->findOne();
    }
    public function cargos()
    {
    	return $this->hasMany(TransaccionContable::class, 'cuenta_de')->findMany();
    }
    public function abonos()
    {
    	return $this->hasMany(TransaccionContable::class, 'cuenta_para')->findMany();
    }
    public function transacciones()
    {
    	$transacciones = model(TransaccionContable::class)->whereAnyIs([['cuenta_de', $this->id], ['cuenta_para', $this->id]])->orderByAsc('fecha')->findMany();
    	return $transacciones;
    }
    public function unidades()
    {
    	return null;
    }
}
