Supplier.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. namespace app\user\model;
  3. class Supplier extends Base
  4. {
  5. //设置字段信息
  6. protected $schema = [
  7. 'id' =>'bigint',//
  8. 'name' =>'varchar',//数据标题
  9. 'code' =>'varchar',//单据号
  10. 'creater' =>'varchar',//创建人
  11. 'createrid' =>'int',//创建人id
  12. 'person' =>'varchar',//负责人
  13. 'personid' =>'int',//负责人id
  14. 'source' =>'varchar',//供应商来源
  15. 'type' =>'varchar',//申请类型
  16. 'nature' =>'varchar',//公司类型
  17. 'legaler' =>'varchar',//法人
  18. 'registertime' =>'varchar',//成立时间
  19. 'registercode' =>'varchar',//注册的编号
  20. 'capital' =>'varchar',//注册资本(万元)
  21. 'supplier_type' =>'varchar',//供应商性质
  22. 'category' =>'varchar',//所属类别
  23. 'level' =>'varchar',//供应商级别
  24. 'product_category' =>'mediumtext',//主要合作产品
  25. 'pay_type' =>'varchar',//付款方式 "现结","月清","双月请"
  26. 'ticket_type' =>'varchar',//回票方式
  27. 'is_payment' =>'varchar',//有无账期
  28. 'delivery_way' =>'varchar',//提供物流方式
  29. 'notice_mark' =>'mediumtext',//备注说明
  30. 'agreement' =>'varchar',//框架协议编号
  31. 'coop_state' =>'varchar',//合作状态
  32. 'warehouse' =>'varchar',//提货地
  33. 'addr' =>'varchar',//详细地址
  34. 'pay_day' =>'varchar',//结账期
  35. 'scope' =>'mediumtext',//13经营范围
  36. 'prove_img' =>'varchar',//资质证明
  37. 'license_img' =>'varchar',//营业执照
  38. 'status' =>'int',//使用状态
  39. 'ocr_status' =>'tinyint',//识别状态
  40. 'is_platform' =>'tinyint',//是否是平台公司
  41. 'remark' =>'varchar',//
  42. 'is_del' =>'int',//
  43. 'addtime' =>'datetime',//创建时间
  44. 'updatetime' =>'datetime',//修改时间
  45. 'is_upgrade' =>'tinyint',//是否升级为业务公司
  46. ];
  47. protected $createTime='addtime';
  48. protected $updateTime='updatetime';
  49. public function ContactInfo()
  50. {
  51. return $this->belongsTo(SupplierContact::class,"code","code")->bind(['contactor','mobile','email','telephone','position']);
  52. }
  53. /**
  54. * @param $param 升级参数
  55. * @return bool|int
  56. * @throws \think\Exception
  57. * @throws \think\db\exception\DataNotFoundException
  58. * @throws \think\db\exception\ModelNotFoundException
  59. * @throws \think\exception\DbException
  60. */
  61. public function upgrade($param)
  62. {
  63. $bussinesCode=makeNo('GS');
  64. $res=Supplier::with(["contactInfo"])->where('code',$param['code'])->find();
  65. if($res->isEmpty())throw new \Exception('供应商不存在');
  66. $data=[
  67. 'company' => $res['name'],
  68. 'companyNo' => $bussinesCode,
  69. 'inv_code' => $res['registercode'],
  70. 'company_type' => $res['nature'],
  71. 'type' => $temp['id'] ?? 0,
  72. 'creater' => $param['uname'],
  73. 'createrid' => $param['uid'],
  74. 'inv_legaler' => $res['legaler'],
  75. 'inv_time' => $res['registertime'],
  76. 'inv_addr' => $param['inv_addr'],
  77. 'inv_bank' => $param['inv_bank'],
  78. 'inv_bankNo' => $param['inv_bankNo'],
  79. 'contactor' => $res['contactor'],
  80. 'mobile' => $res['mobile'],
  81. 'addr' => $res['addr'],
  82. 'inv_scope' => $res['scope'],
  83. 'license_img' => $res['license_img'],
  84. 'invoice_title' => $param['invoice_title'],
  85. 'invoice_mobile' => $param['invoice_mobile'],
  86. ];
  87. $bussines=Business::create($data);
  88. if($bussines->isEmpty()) throw new \Exception('业务公司升级失败');
  89. $bussines->relation_code=$param['code'];
  90. $bussines->updater=$param['uname'];
  91. $bussines->updaterid=$param['uid'];
  92. $comp=Headquarters::createInfo($bussines,1);
  93. if(!$comp)throw new \Exception('业务公司信息更新失败');
  94. $res->is_upgrade=1;
  95. $res->relation_code=$bussinesCode;
  96. $res->updater=$param['uname'];
  97. $res->updaterid=$param['uid'];
  98. $resup=Headquarters::createInfo($res,3);
  99. if(!$resup)throw new \Exception('供应商信息失败');
  100. $acc= AccountCompany::create(["account_id"=>$param['uid'],"companyCode"=>$bussinesCode,"companyName"=>$data['company'],'company_type' => 2]);
  101. if($acc->isEmpty())throw new \Exception('业务公司账户关联失败');
  102. return $res->save();
  103. }
  104. }