<?php

namespace App\Model;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Facades\DB;

class TramiteUsuarioRequisito extends Model
{
    protected $table = 'tramite_usuario_requisito';

    protected $dates = ['created_at','updated_at'];

    protected $fillable = [
        'id_tramite_requisito',
        'id_tramite_usuario',
    ];

    public function tramite_usuario_requisito($uit_valor, $id_tramite_usuario)
    {
        return TramiteUsuarioRequisito::leftJoin('tramite_usuario', 'tramite_usuario.id', '=', 'tramite_usuario_requisito.id_tramite_usuario')
            ->rightJoin('tramite_requisito', 'tramite_requisito.id', '=', DB::raw('tramite_usuario_requisito.id_tramite_requisito and (tramite_usuario_requisito.id_tramite_usuario = ' . $id_tramite_usuario . ' or tramite_usuario_requisito.id is null)'))
            ->select(
                'tramite_usuario_requisito.id as id',
                'tramite_usuario_requisito.id_tramite_requisito as id_tramite_requisito',
                'tramite_usuario_requisito.id_tramite_usuario as id_tramite_usuario',
                'tramite_requisito.id as tramite_requisito_id',
                'tramite_requisito.nombre as tramite_requisito_nombre',
                'tramite_requisito.codigo as tramite_requisito_codigo',
                DB::raw('ROUND((tramitacion_soles / ' . $uit_valor . '), 6) as tramite_requisito_tramitacion_uit'),
                'tramite_requisito.tramitacion_soles as tramite_requisito_tramitacion_soles',
                'tramite_requisito.id_tramite_procedimiento as tramite_requisito_id_tramite_procedimiento',
                'tramite_usuario.id as tramite_usuario_id',
                'tramite_usuario.deuda as tramite_usuario_deuda',
                'tramite_usuario.folio as tramite_usuario_folio',
                'tramite_usuario.monto_pagado as tramite_usuario_monto_pagado',
                'tramite_usuario.monto_pagar as tramite_usuario_monto_pagar',
                'tramite_usuario.sustento as tramite_usuario_sustento',
                'tramite_usuario.id_dependencia as tramite_usuario_id_dependencia',
                'tramite_usuario.id_recibo as tramite_usuario_id_recibo',
                'tramite_usuario.id_tramite_procedimiento as tramite_usuario_id_tramite_procedimiento',
                'tramite_usuario.id_tramite_usuario_accion as tramite_usuario_id_tramite_usuario_accion',
                'tramite_usuario.id_tramite_usuario_estado as tramite_usuario_id_tramite_usuario_estado',
                'tramite_usuario.id_usuario as tramite_usuario_id_usuario');
    }
}
