Files
stradaautopartes/app/Models/Pedido.php
2024-03-30 08:18:49 -07:00

79 lines
1.7 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Pedido extends Model
{
use HasFactory;
protected $fillable = [
'cuenta',
'pedido',
'telefono',
'year',
'marca',
'modelo',
'motor',
'folio_proveedor',
'user_id',
'comentarios',
'numero_remision',
'is_venta_cerrada',
'venta_cerrada_user_id',
'is_venta_entregada',
'venta_entregada_user_id',
'venta_cerrada_at',
'venta_entregada_at'
];
public static function boot()
{
parent::boot();
static::created(function ($model){
$model->pedido = 'PE-'.$model->id;
$model->save();
} );
}
public function user()
{
return $this->belongsTo(User::class);
}
public function productos()
{
return $this->belongsToMany(Producto::class,'producto_pedidos','pedido_id','producto_id')->withPivot(['unidades','is_arrivo','precio_unitario']);
}
public function ultimaVenta()
{
return $this->hasOne(Movimiento::class,'codigo','pedido')->latest();
}
public function primeraVenta()
{
return $this->hasOne(Movimiento::class,'codigo','pedido')->first();
}
public function ultimaVentaBy()
{
return $this->ultimaVenta()->where('is_liquidado', '=', '1')->first();
}
public function ventaEntregadaUser()
{
return $this->belongsTo(User::class,'venta_entregada_user_id','id');
}
public function ventaCerradaUser()
{
return $this->belongsTo(User::class,'venta_cerrada_user_id','id');
}
}