123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- <?php
- namespace app\user\model;
- class Supplier extends Base
- {
- //设置字段信息
- protected $schema = [
- 'id' =>'bigint',//
- 'name' =>'varchar',//数据标题
- 'code' =>'varchar',//单据号
- 'creater' =>'varchar',//创建人
- 'createrid' =>'int',//创建人id
- 'person' =>'varchar',//负责人
- 'personid' =>'int',//负责人id
- 'source' =>'varchar',//供应商来源
- 'type' =>'varchar',//申请类型
- 'nature' =>'varchar',//公司类型
- 'legaler' =>'varchar',//法人
- 'registertime' =>'varchar',//成立时间
- 'registercode' =>'varchar',//注册的编号
- 'capital' =>'varchar',//注册资本(万元)
- 'supplier_type' =>'varchar',//供应商性质
- 'category' =>'varchar',//所属类别
- 'level' =>'varchar',//供应商级别
- 'lead_prove'=>"varchar", //资质证明
- 'legaler_type'=>'varchar', //纳税人资质 类型
- 'invoice_code'=>'varchar',//纳税人编号
- 'product_category' =>'mediumtext',//主要合作产品
- 'pay_type' =>'varchar',//付款方式 "现结","月清","双月请"
- 'ticket_type' =>'varchar',//回票方式
- 'is_payment' =>'varchar',//有无账期
- 'delivery_way' =>'varchar',//提供物流方式
- 'notice_mark' =>'mediumtext',//备注说明
- 'agreement' =>'varchar',//框架协议编号
- 'coop_state' =>'varchar',//合作状态
- 'warehouse' =>'varchar',//提货地
- 'addr' =>'varchar',//详细地址
- 'pay_day' =>'varchar',//结账期
- 'scope' =>'mediumtext',//13经营范围
- 'prove_img' =>'varchar',//资质证明
- 'license_img' =>'varchar',//营业执照
- 'status' =>'int',//使用状态
- 'ocr_status' =>'tinyint',//识别状态
- 'is_platform' =>'tinyint',//是否是平台公司
- 'remark' =>'varchar',//
- 'is_del' =>'int',//
- 'addtime' =>'datetime',//创建时间
- 'updatetime' =>'datetime',//修改时间
- 'is_upgrade' =>'tinyint',//是否升级为业务公司
- ];
- protected $createTime='addtime';
- protected $updateTime='updatetime';
- public static $source=['客户提供','供应商','公司开发'];
- public static $suptype=['正式供应商','临时供应商'];
- public static $coop_state=['白名单','黑名单'];
- public static $pay_type=['现结','月清','双月清'];
- public static $delivery_way=['供应商发货','公司自提'];
- public static $category=['单品类供应商','多品类供应商'];
- public static $level=['生产厂家','一级代理',"二级代理"];
- public static $supplier_type=['生产厂家','代理商','经销商','分销商','电商平台'];
- public static $legaler_type=["一般纳税人","农户","合作社","个人","小规模"];
- public static $legaler_tax=[[0,6,9,13],[0,9],[0,9],[0,1,3],[0,1,3,5]]; //对应不同类型资质税率
- public function ContactInfo()
- {
- return $this->belongsTo(SupplierContact::class,"code","code")->bind(['contactor','mobile','email','telephone','position']);
- }
- /**
- * @param $param 升级参数
- * @return bool|int
- * @throws \think\Exception
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- */
- public function upgrade($param)
- {
- $bussinesCode=makeNo('GS');
- $res=Supplier::with(["contactInfo"])->where('code',$param['code'])->find();
- if($res->isEmpty())throw new \Exception('供应商不存在');
- $data=[
- 'company' => $res['name'],
- 'companyNo' => $bussinesCode,
- 'inv_code' => $res['registercode'],
- 'company_type' => $res['nature'],
- 'type' => $temp['id'] ?? 0,
- "legaler_type"=>$res['legaler_type'],
- 'creater' => $param['uname'],
- 'createrid' => $param['uid'],
- 'inv_legaler' => $res['legaler'],
- 'inv_time' => $res['registertime'],
- 'inv_addr' => $param['inv_addr'],
- 'inv_bank' => $param['inv_bank'],
- 'inv_bankNo' => $param['inv_bankNo'],
- 'contactor' => $res['contactor'],
- 'mobile' => $res['mobile'],
- 'addr' => $res['addr'],
- 'inv_scope' => $res['scope'],
- 'license_img' => $res['license_img'],
- 'invoice_title' => $param['invoice_title'],
- 'invoice_mobile' => $param['invoice_mobile'],
- ];
- $bussines=Business::create($data);
- if($bussines->isEmpty()) throw new \Exception('业务公司升级失败');
- $bussines->relation_code=$param['code'];
- $bussines->updater=$param['uname'];
- $bussines->updaterid=$param['uid'];
- $comp=Headquarters::createInfo($bussines,1);
- if(!$comp)throw new \Exception('业务公司信息更新失败');
- $res->is_upgrade=1;
- $res->relation_code=$bussinesCode;
- $res->updater=$param['uname'];
- $res->updaterid=$param['uid'];
- $resup=Headquarters::createInfo($res,3);
- if(!$resup)throw new \Exception('供应商信息失败');
- $acc= AccountCompany::create(["account_id"=>$param['uid'],"companyCode"=>$bussinesCode,"companyName"=>$data['company'],'company_type' => 2]);
- if($acc->isEmpty())throw new \Exception('业务公司账户关联失败');
- return $res->save();
- }
- }
|