123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- <?php
- namespace app\user\model;
- use think\Exception;use think\Model;class Headquarters extends Base
- {
- protected $schema = [
- 'id' =>'bigint',
- 'code' =>'varchar',
- 'name' =>'varchar',
- 'type' =>'tinyint',
- 'company_type' =>'tinyint',
- 'invoice_title' =>'varchar',
- 'invoice_people' =>'varchar',
- 'invoice_addr' =>'varchar',
- 'invoice_mobile' =>'varchar',
- 'invoice_code' =>'varchar',
- 'invoice_bank' =>'varchar',
- 'invoice_bankNo' =>'varchar',
- 'invoice_img' =>'varchar',
- 'remark' =>'varchar',
- 'status' =>'tinyint',
- 'is_del' =>'tinyint',
- 'creater' =>'varchar',
- 'createrid' =>'int',
- 'addtime' =>'datetime',
- 'updater' =>'varchar',
- 'updaterid' =>'int',
- 'updatetime' =>'datetime',
- 'relation_code' =>'char',
- ];
- protected $createTime = 'addtime';
- protected $updateTime = 'updatetime';
-
- public static function createInfo($object,$type){
- $result =self::checkObject($object,$type);
- if(empty($result))throw new Exception("公司数据创建失败");
- $isobj= self::where(['code'=>$result['code'],'is_del'=>0])->findOrEmpty();
- if(!$isobj->isEmpty() && $type==3 && $object->is_upgrade==1){
- self::sycCompany($isobj->relation_code,$object);
- }
- $result['id']=$isobj->isEmpty()?null:$isobj->id;
- $info = $isobj->save($result);
- return $info;
- }
-
- private static function checkObject($object,$type){
- $result = [];
- switch ($type){
- case 1:
- $result = [
- 'code' =>$object->companyNo,
- 'name' =>$object->company,
- 'type' =>1,
- 'company_type' =>0,
- 'invoice_title' =>$object->invoice_title,
- 'invoice_people' =>$object->inv_legaler,
- 'invoice_addr' =>$object->inv_addr,
- 'invoice_mobile' =>$object->invoice_mobile,
- 'invoice_code' =>$object->inv_code,
- 'invoice_bank' =>$object->inv_bank,
- 'invoice_bankNo' =>$object->inv_bankNo,
- 'invoice_img' =>$object->license_img,
- 'remark' =>'',
- "is_del"=>$object->is_del??0,
- "creater"=>$object->creater,
- "createrid"=>$object->createrid,
- 'updater' => $object->updater,
- 'updaterid' => $object->updaterid,
- ];
- break;
- case 2:
- $result = [
- 'code' =>$object->companyNo,
- 'name' =>$object->companyName,
- 'type' =>2,
- 'company_type' =>0,
- 'invoice_title' =>$object->invoice_title??"",
- 'invoice_people' =>$object->invoice_people??'',
- 'invoice_addr' =>$object->invoice_people??'',
- 'invoice_mobile' =>$object->invoice_mobile??'',
- 'invoice_code' =>$object->invoice_code??'',
- 'invoice_bank' =>$object->invoice_bank??'',
- 'invoice_bankNo' =>$object->invoice_bankNo??'',
- 'invoice_img' =>'',
- 'remark' =>'',
- 'is_del'=>$object->is_del??0,
- 'creater'=>$object->creater,
- 'createrid'=>$object->createrid,
- 'updater' => $object->updater,
- 'updaterid' => $object->updaterid,
- ];
- break;
- case 3:
- $result = [
- 'code' =>$object->code,
- 'name' =>$object['name'],
- 'type' =>3,
- 'company_type' =>0,
- 'invoice_title' =>$object['name']??'',
- 'invoice_people' =>$object->legaler??'',
- 'invoice_addr' =>$object->addr??'',
- 'invoice_mobile' =>'',
- 'invoice_code' =>$object->registercode??'',
- 'invoice_bank' =>'',
- 'invoice_bankNo' =>'',
- 'invoice_img' =>$object->license_img??'',
- 'remark' =>'',
- 'is_del'=>$object->is_del??0,
- 'creater'=>$object->creater,
- 'createrid'=>$object->createrid,
- 'updater' => $object->updater,
- 'updaterid' => $object->updaterid,
- ];
- break;
- default:
- $result=[];
- break;
- }
- return $result;
- }
-
- private static function sycCompany($relation_code,$object){
- $result = Business::where(['companyNo'=>$relation_code,"is_del"=>0])->findOrEmpty();
- if(!$result->isEmpty()){
- $result->company=$object['name'];
- $result->inv_code=$object->registercode;
- $result->license_img=$object->license_img;
- $result->inv_legaler=$object->legaler;
- $result->legaler_type=$object->legaler_type;
- $result->inv_time=$object->registertime;
- $result->addr=$object->addr;
- $result->inv_scope=$object->scope;
- $result->contactor=$object->contactor;
- $result->mobile=$object->mobile;
- $result->updater=$object->updater;
- $result->updaterid=$object->updaterid;
- $busup=$result->save();
- if(!$busup) throw new \Exception("业务公司同步失败");
- self::createInfo($result,1);
- }
- }
- public function companyInfo(){
- return $this->belongsTo(Business::class,'code','companyNo');
- }
- public function supplierInfo(){
- return $this->belongsTo(Supplier::class,'code','code');
- }
- public function customerInfo(){
- return $this->belongsTo(CustomerInfo::class,'code','companyNo');
- }
- public static function onAfterWrite($model) {
- event("copyCompany",$model->toArray());
- }
- }
|