Supplier.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  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. 'lead_prove'=>"varchar", //资质证明
  25. 'legaler_type'=>'varchar', //纳税人资质 类型
  26. 'invoice_code'=>'varchar',//纳税人编号
  27. 'product_category' =>'mediumtext',//主要合作产品
  28. 'pay_type' =>'varchar',//付款方式 "现结","月清","双月请"
  29. 'ticket_type' =>'varchar',//回票方式
  30. 'is_payment' =>'varchar',//有无账期
  31. 'delivery_way' =>'varchar',//提供物流方式
  32. 'notice_mark' =>'mediumtext',//备注说明
  33. 'agreement' =>'varchar',//框架协议编号
  34. 'coop_state' =>'varchar',//合作状态
  35. 'warehouse' =>'varchar',//提货地
  36. 'addr' =>'varchar',//详细地址
  37. 'pay_day' =>'varchar',//结账期
  38. 'scope' =>'mediumtext',//13经营范围
  39. 'prove_img' =>'varchar',//资质证明
  40. 'license_img' =>'varchar',//营业执照
  41. 'status' =>'int',//使用状态
  42. 'ocr_status' =>'tinyint',//识别状态
  43. 'is_platform' =>'tinyint',//是否是平台公司
  44. 'remark' =>'varchar',//
  45. 'is_del' =>'int',//
  46. 'addtime' =>'datetime',//创建时间
  47. 'updatetime' =>'datetime',//修改时间
  48. 'is_upgrade' =>'tinyint',//是否升级为业务公司
  49. ];
  50. protected $createTime='addtime';
  51. protected $updateTime='updatetime';
  52. public static $source=['客户提供','供应商','公司开发'];
  53. public static $suptype=['正式供应商','临时供应商'];
  54. public static $coop_state=['白名单','黑名单'];
  55. public static $pay_type=['现结','月清','双月清'];
  56. public static $delivery_way=['供应商发货','公司自提'];
  57. public static $category=['单品类供应商','多品类供应商'];
  58. public static $level=['生产厂家','一级代理',"二级代理"];
  59. public static $supplier_type=['生产厂家','代理商','经销商','分销商','电商平台'];
  60. public static $legaler_type=["一般纳税人","农户","合作社","个人","小规模"];
  61. public static $legaler_tax=[[0,6,9,13],[0,9],[0,9],[0,1,3],[0,1,3,5]]; //对应不同类型资质税率
  62. public function ContactInfo()
  63. {
  64. return $this->belongsTo(SupplierContact::class,"code","code")->bind(['contactor','mobile','email','telephone','position']);
  65. }
  66. /**
  67. * @param $param 升级参数
  68. * @return bool|int
  69. * @throws \think\Exception
  70. * @throws \think\db\exception\DataNotFoundException
  71. * @throws \think\db\exception\ModelNotFoundException
  72. * @throws \think\exception\DbException
  73. */
  74. public function upgrade($param)
  75. {
  76. $bussinesCode=makeNo('GS');
  77. $res=Supplier::with(["contactInfo"])->where('code',$param['code'])->find();
  78. if($res->isEmpty())throw new \Exception('供应商不存在');
  79. $data=[
  80. 'company' => $res['name'],
  81. 'companyNo' => $bussinesCode,
  82. 'inv_code' => $res['registercode'],
  83. 'company_type' => $res['nature'],
  84. 'type' => $temp['id'] ?? 0,
  85. "legaler_type"=>$res['legaler_type'],
  86. 'creater' => $param['uname'],
  87. 'createrid' => $param['uid'],
  88. 'inv_legaler' => $res['legaler'],
  89. 'inv_time' => $res['registertime'],
  90. 'inv_addr' => $param['inv_addr'],
  91. 'inv_bank' => $param['inv_bank'],
  92. 'inv_bankNo' => $param['inv_bankNo'],
  93. 'contactor' => $res['contactor'],
  94. 'mobile' => $res['mobile'],
  95. 'addr' => $res['addr'],
  96. 'inv_scope' => $res['scope'],
  97. 'license_img' => $res['license_img'],
  98. 'invoice_title' => $param['invoice_title'],
  99. 'invoice_mobile' => $param['invoice_mobile'],
  100. ];
  101. $bussines=Business::create($data);
  102. if($bussines->isEmpty()) throw new \Exception('业务公司升级失败');
  103. $bussines->relation_code=$param['code'];
  104. $bussines->updater=$param['uname'];
  105. $bussines->updaterid=$param['uid'];
  106. $comp=Headquarters::createInfo($bussines,1);
  107. if(!$comp)throw new \Exception('业务公司信息更新失败');
  108. $res->is_upgrade=1;
  109. $res->relation_code=$bussinesCode;
  110. $res->updater=$param['uname'];
  111. $res->updaterid=$param['uid'];
  112. $resup=Headquarters::createInfo($res,3);
  113. if(!$resup)throw new \Exception('供应商信息失败');
  114. $acc= AccountCompany::create(["account_id"=>$param['uid'],"companyCode"=>$bussinesCode,"companyName"=>$data['company'],'company_type' => 2]);
  115. if($acc->isEmpty())throw new \Exception('业务公司账户关联失败');
  116. return $res->save();
  117. }
  118. }