<?php
namespace app\model;
use think\Model;
class Bill extends Model{
protected $type = [
'time'=>'timestamp:Y-m-d',
'file'=>'json'
];
public function frameData(){
return $this->hasOne(Frame::class,'id','frame');
}
public function customerData(){
return $this->hasOne(Customer::class,'id','customer')->append(['extension']);
}
public function supplierData(){
return $this->hasOne(Supplier::class,'id','supplier')->append(['extension']);
}
public function userData(){
return $this->hasOne(User::class,'id','user')->field(['id','name']);
}
public function peopleData(){
return $this->hasOne(People::class,'id','people')->field(['id','name']);
}
public function recordData(){
return $this->hasMany(Record::class,'source','id')->with(['userData'])->where([['type','=','bill']])->append(['extension'])->order('id desc');
}
public function setCustomerAttr($val){
return empty($val)?0:$val;
}
public function getCustomerAttr($val){
return empty($val)?null:$val;
}
public function setSupplierAttr($val){
return empty($val)?0:$val;
}
public function getSupplierAttr($val){
return empty($val)?null:$val;
}
public function getPmyAttr($val,$data){
return floatval($val);
}
public function getSmpAttr($val,$data){
return floatval($val);
}
public function setMoreAttr($val){
return json_encode((object)$val);
}
public function getMoreAttr($val){
return json_decode($val);
}
public function setPeopleAttr($val){
return empty($val)?0:$val;
}
public function getPeopleAttr($val){
return empty($val)?null:$val;
}
public function getExtensionAttr($val,$data){
$source=[];
$source['type']=[0=>'预收冲应收',1=>'预付冲应付',2=>'应收冲应付',3=>'销退冲销售',4=>'购退冲采购'][$data['type']];
$source['examine']=[0=>'未审核',1=>'已审核'][$data['examine']];
return $source;
}
public static function onBeforeUpdate($model){
$source=$model::where([['id','=',$model['id']]])->find();
if(!empty($source['examine'])){
exit(json(['state'=>'error','info'=>'[ ERROR ] 单据已审核!'],200)->send());
}
}
}