79 lines
2.3 KiB
PHP
79 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
class ItemNfce extends Model
|
|
{
|
|
use HasFactory;
|
|
|
|
protected $fillable = [
|
|
'nfce_id', 'produto_id', 'quantidade', 'valor_unitario', 'sub_total', 'perc_icms', 'perc_pis',
|
|
'perc_cofins', 'perc_ipi', 'cst_csosn', 'cst_pis', 'cst_cofins', 'cst_ipi', 'perc_red_bc', 'cfop',
|
|
'ncm', 'origem', 'cEnq', 'pST', 'vBCSTRet', 'cest', 'codigo_beneficio_fiscal', 'variacao_id', 'tamanho_id', 'observacao'
|
|
];
|
|
|
|
public function produto(){
|
|
return $this->belongsTo(Produto::class, 'produto_id');
|
|
}
|
|
|
|
public function nfce(){
|
|
return $this->belongsTo(Nfce::class, 'nfce_id');
|
|
}
|
|
|
|
public function produtoVariacao(){
|
|
return $this->belongsTo(ProdutoVariacao::class, 'variacao_id');
|
|
}
|
|
|
|
public function adicionais(){
|
|
return $this->hasMany(ItemAdicionalNfce::class, 'item_nfce_id')->with('adicional');
|
|
}
|
|
|
|
public function pizzas(){
|
|
return $this->hasMany(ItemPizzaNfce::class, 'item_nfce_id')->with('sabor');
|
|
}
|
|
|
|
public function tamanho(){
|
|
return $this->belongsTo(TamanhoPizza::class, 'tamanho_id');
|
|
}
|
|
|
|
public function descricao(){
|
|
|
|
$descricao = $this->produto->nome;
|
|
|
|
if($this->produtoVariacao){
|
|
$descricao .= " - " . $this->produtoVariacao->descricao;
|
|
}
|
|
|
|
if(sizeof($this->adicionais) > 0){
|
|
$adicionalStr = " - adicionais: ";
|
|
foreach($this->adicionais as $a){
|
|
$adicionalStr .= $a->adicional->nome . ", ";
|
|
}
|
|
$adicionalStr = substr($adicionalStr, 0, strlen($adicionalStr)-2);
|
|
$descricao .= $adicionalStr;
|
|
}
|
|
|
|
if($this->tamanho){
|
|
$descricao .= " - tamanho: " . $this->tamanho->nome;
|
|
}
|
|
|
|
if($this->observacao){
|
|
$descricao .= " - observação: " . $this->observacao;
|
|
}
|
|
return $descricao;
|
|
}
|
|
|
|
// public function descricao(){
|
|
// if($this->variacao_id == null){
|
|
// return $this->produto->nome;
|
|
// }
|
|
// if($this->produtoVariacao){
|
|
// return $this->produto->nome . " - " . $this->produtoVariacao->descricao;
|
|
// }
|
|
// return $this->produto->nome;
|
|
// }
|
|
}
|