123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- <?php
- namespace app\user\model;
- use think\model\concern\SoftDelete;
- class TaxRelation extends Base
- {
- use SoftDelete;
- //设置字段信息
- protected $schema = [
- 'id' =>'bigint',//
- 'income_tax_id' =>'int',//
- 'output_tax_id' =>'int',//
- 'output_bind_tax' =>'varchar',//
- 'companyNo' =>'varchar',//业务公司编号
- 'createrid' =>'int',//
- 'creater' =>'varchar',//
- 'createTime' =>'datetime',//
- 'updateTime' =>'datetime',//
- 'delete_time' =>'datetime',//
- ];
- protected $createTime='createTime';
- protected $updateTime='updateTime';
- protected $deleteTime='delete_time';
- public function company(){
- return $this->belongsTo(Headquarters::class,'companyNo','code')->bind(['companyName'=>'name']);
- }
- public function incomeTax(){
- return $this->belongsTo(TaxCategory::class,'income_tax_id','id')
- ->bind(["income_cat_name" =>"cat_name","income_cat_code" =>"cat_code","income_short_name" =>"short_name","income_merge_code" =>"merge_code","income_tax" =>'tax']);
- }
- public function outputTax(){
- return $this->belongsTo(TaxCategory::class,'output_tax_id','id')
- ->bind(["output_cat_name" =>"cat_name","output_cat_code" =>"cat_code","output_short_name" =>"short_name","output_merge_code" =>"merge_code","output_tax" =>"tax"]);
- }
- public static function relationCheck($companyNo,$incomeTaxIds){
- $where=[['companyNo','=',$companyNo],['income_tax_id','in',$incomeTaxIds]];
- $list=self::with(['incomeTax'])->where($where)->select();
- if(!$list->isEmpty()){
- $map= array_map(function($item)use($incomeTaxIds){
- if(in_array($item['income_tax_id'],$incomeTaxIds))return $item['income_cat_name'];
- },$list->toArray());
- if(!empty($map))throw new \Exception(implode(",",$map).'关联税目已存在');
- }
- return true;
- }
- public static function onAfterWrite($model){
- TaxCompany::where(['companyNo'=>$model->companyNo,'tax_id'=>$model->income_tax_id])->update(['in_status'=>1]);
- $ist=self::where(['companyNo'=>$model->companyNo,'output_tax_id'=>$model->output_tax_id])->count();
- TaxCompany::where(['companyNo'=>$model->companyNo,'tax_id'=>$model->output_tax_id])->update(['out_status'=>$ist>0?1:0]);
- }
- public static function onAfterUpdate($model){
- $after=$model->getChangedData();
- $data = $model->getOrigin();
- $before = $data;
- $changeLog= new TaxRelationLog();
- $create = [
- 'income_tax_id'=>$data['income_tax_id']??$model->income_tax_id,
- 'output_tax_id'=>$data['output_tax_id']??$model->output_tax_id,
- 'output_bind_tax'=>$data['output_bind_tax']??$model->output_bind_tax,
- "change_content"=>$after,
- 'companyNo'=>$model->companyNo,
- 'changer'=>$model->creater,
- "change_type"=>"1",
- ];
- $changeLog->save($create);
- }
- public static function onAfterDelete($model){
- TaxCompany::where(['companyNo'=>$model->companyNo,'tax_id'=>$model->income_tax_id])->update(['in_status'=>0]);
- $ist=self::where(['companyNo'=>$model->companyNo,'output_tax_id'=>$model->output_tax_id])->count();
- TaxCompany::where(['companyNo'=>$model->companyNo,'tax_id'=>$model->output_tax_id])->update(['out_status'=>$ist>0?1:0]);
- }
- }
|