Company.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327
  1. <?php
  2. declare (strict_types = 1);
  3. namespace app\admin\controller;
  4. use app\admin\BaseController;
  5. use think\App;
  6. use think\facade\Config;use think\facade\Db;
  7. class Company extends BaseController
  8. {
  9. protected $invoiceType;
  10. public function __construct(App $app) {
  11. parent::__construct($app);
  12. $invoice =Config::get("invoiceType");
  13. $this->invoiceType = $invoice['invoiceType'];
  14. }
  15. /**
  16. * 显示资源列表
  17. *
  18. * @return \think\Response
  19. */
  20. public function Info()
  21. {
  22. $post =$this->post;
  23. if($this->level==1){
  24. $companyNo = isset($post['companyNo'])&& $post['companyNo']!="" ? trim($post['companyNo']) :"";
  25. }else{
  26. $companyNo = isset($post['relaComNo'])&& $post['relaComNo']!="" ? trim($post['relaComNo']) :"";
  27. }
  28. if($companyNo==""){
  29. return error_show(1004,"参数companyNo 不能为空");
  30. }
  31. $company = Db::name("company_info")->where("companyNo","=",$companyNo)->find();
  32. if(empty($company)){
  33. return error_show(1004,"未找到对应的数据");
  34. }
  35. return app_show(0,"获取成功",$company);
  36. }
  37. /**
  38. * 显示创建资源表单页.
  39. *
  40. * @return \think\Response
  41. */
  42. public function create()
  43. {
  44. $post =$this->post;
  45. if($this->level==1){
  46. $companyNo = isset($post['companyNo'])&& $post['companyNo']!="" ? trim($post['companyNo']) :"";
  47. }else{
  48. $companyNo = isset($post['relaComNo'])&& $post['relaComNo']!="" ? trim($post['relaComNo']) :"";
  49. }
  50. if($companyNo==""){
  51. return error_show(1004,"参数companyNo 不能为空");
  52. }
  53. $supplierinfo =Db::name("supplier_info")->where(["code"=>$companyNo])->findOrEmpty();
  54. if(empty($supplierinfo)){
  55. return error_show(1004,"未找到企业信息");
  56. }
  57. $isIn =Db::name("company_info")->where(["companyNo"=>$companyNo,"is_del"=>0])->findOrEmpty();
  58. if(!empty($isIn))return error_show(1004,"财务信息已存在!");
  59. $name = isset($post['company_name'])&&$post['company_name']!="" ? trim($post['company_name']) :"";
  60. if($name==""){
  61. return error_show(1004,"参数company_name 不能为空");
  62. }
  63. $title = isset($post['company_license'])&&$post['company_license']!="" ? trim($post['company_license']) :"";
  64. if($title==""){
  65. return error_show(1004,"参数company_license 不能为空");
  66. }
  67. $bank = isset($post['bank_name'])&&$post['bank_name']!="" ? trim($post['bank_name']) :"";
  68. if($bank==""){
  69. return error_show(1004,"参数bank_name 不能为空");
  70. }
  71. $bankNo = isset($post['bankNo'])&&$post['bankNo']!="" ? trim($post['bankNo']) :"";
  72. if($bankNo==""){
  73. return error_show(1004,"参数bankNo 不能为空");
  74. }
  75. // $is_bank = Db::name("company_info")->where([["bankNo","=",$bankNo],["status","=",1]])->find();
  76. // if(!empty($is_bank)){
  77. // return error_show(1004,"银行卡号已存在!");
  78. // }
  79. $address = isset($post['company_address'])&&$post['company_address']!="" ? trim($post['company_address']) :"";
  80. if($address==""){
  81. return error_show(1004,"参数company_address 不能为空");
  82. }
  83. $contector = isset($post['contector'])&&$post['contector']!="" ? trim($post['contector']) :"";
  84. $mobile = isset($post['mobile'])&&$post['mobile']!="" ? trim($post['mobile']) :"";
  85. $img = isset($post['company_img'])&&$post['company_img']!="" ? trim($post['company_img']) :"";
  86. if($mobile!=""){
  87. if(!checkTel($mobile)&&!checkMobile($mobile)){
  88. return error_show(1004,"手机号/电话格式不正确");
  89. }
  90. }
  91. $inputTicket = isset($post['input_ticket'])&&$post['input_ticket']!="" ? intval($post['input_ticket']) :"0";
  92. if($inputTicket==""){
  93. return error_show(1004,"进项票未设置验票方式");
  94. }
  95. $outTicket = isset($post['out_ticket'])&&$post['out_ticket']!="" ? intval($post['out_ticket']) :"0";
  96. if($outTicket==""){
  97. return error_show(1004,"销项票未设置验票方式");
  98. }
  99. $voider = isset($post['voider'])&&$post['voider']!="" ? trim($post['voider']) :"";
  100. $payee = isset($post['payee'])&&$post['payee']!="" ? trim($post['payee']) :"";
  101. $drawer = isset($post['drawer'])&&$post['drawer']!="" ? trim($post['drawer']) :"";
  102. $reviewer = isset($post['reviewer'])&&$post['reviewer']!="" ? trim($post['reviewer']) :"";
  103. $ownerPlace = isset($post['ownerPlace'])&&$post['ownerPlace']!="" ? trim($post['ownerPlace']) :"";
  104. $denomination = isset($post['denomination'])&&$post['denomination']!="" ? trim($post['denomination']) :"";
  105. $invoiceType = isset($post['invoiceType'])&&!empty($post['invoiceType']) ? $post['invoiceType']:"";
  106. if($invoiceType!=''&& !empty(array_diff($invoiceType,$this->invoiceType))) return error_show(1004,"存在无效发票类型");
  107. $data = [
  108. "companyNo"=>$companyNo,
  109. "company_name"=>$name,
  110. "company_address"=>$address,
  111. "company_license"=>$title,
  112. "bank_name"=>$bank,
  113. "bankNo"=>$bankNo,
  114. "contector"=>$contector,
  115. "mobile"=>$mobile,
  116. "company_img"=>$img,
  117. "input_ticket"=>$inputTicket,
  118. "out_ticket"=>$outTicket,
  119. "voider"=>$voider,
  120. "payee"=>$payee,
  121. "drawer"=>$drawer,
  122. "reviewer"=>$reviewer,
  123. "ownerPlace"=>$ownerPlace,
  124. "denomination"=>$denomination,
  125. "invoiceType"=>$invoiceType!=''|| empty($invoiceType)?implode(",",$invoiceType):"",
  126. "status"=>1,
  127. "addtime"=>date("Y-m-d H:i:s"),
  128. "updatetime"=>date("Y-m-d H:i:s")
  129. ];
  130. $result = Db::name("company_info")->insert($data);
  131. return $result? app_show(0,"新建成功",["companyNo"=>$companyNo]):error_show(1005,"新建失败");
  132. }
  133. /**
  134. * 保存新建的资源
  135. *
  136. * @param \think\Request $request
  137. * @return \think\Response
  138. */
  139. public function save()
  140. {
  141. $post =$this->post;
  142. if($this->level==1){
  143. $companyNo = isset($post['companyNo'])&& $post['companyNo']!="" ? trim($post['companyNo']) :"";
  144. }else{
  145. $companyNo = isset($post['relaComNo'])&& $post['relaComNo']!="" ? trim($post['relaComNo']) :"";
  146. }
  147. if($companyNo==""){
  148. return error_show(1004,"参数companyNo 不能为空");
  149. }
  150. $name = isset($post['company_name'])&&$post['company_name']!="" ? trim($post['company_name']) :"";
  151. if($name==""){
  152. return error_show(1004,"参数company_name 不能为空");
  153. }
  154. $title = isset($post['company_license'])&&$post['company_license']!="" ? trim($post['company_license']) :"";
  155. if($title==""){
  156. return error_show(1004,"参数company_license 不能为空");
  157. }
  158. $bank = isset($post['bank_name'])&&$post['bank_name']!="" ? trim($post['bank_name']) :"";
  159. if($bank==""){
  160. return error_show(1004,"参数bank_name 不能为空");
  161. }
  162. $bankNo = isset($post['bankNo'])&&$post['bankNo']!="" ? trim($post['bankNo']) :"";
  163. if($bankNo==""){
  164. return error_show(1004,"参数bankNo 不能为空");
  165. }
  166. $address = isset($post['company_address'])&&$post['company_address']!="" ? trim($post['company_address']) :"";
  167. $contector = isset($post['contector'])&&$post['contector']!="" ? trim($post['contector']) :"";
  168. $mobile = isset($post['mobile'])&&$post['mobile']!="" ? trim($post['mobile']) :"";
  169. $img = isset($post['company_img'])&&$post['company_img']!="" ? trim($post['company_img']) :"";
  170. if($mobile!=""){
  171. if(!checkTel($mobile)&&!checkMobile($mobile)){
  172. return error_show(1004,"手机号/电话格式不正确");
  173. }
  174. }
  175. $inputTicket = isset($post['input_ticket'])&&$post['input_ticket']!="" ? intval($post['input_ticket']) :"0";
  176. if($inputTicket==""){
  177. return error_show(1004,"进项票未设置验票方式");
  178. }
  179. $outTicket = isset($post['out_ticket'])&&$post['out_ticket']!="" ? intval($post['out_ticket']) :"0";
  180. if($outTicket==""){
  181. return error_show(1004,"销项票未设置验票方式");
  182. }
  183. $voider = isset($post['voider'])&&$post['voider']!="" ? trim($post['voider']) :"";
  184. $payee = isset($post['payee'])&&$post['payee']!="" ? trim($post['payee']) :"";
  185. $drawer = isset($post['drawer'])&&$post['drawer']!="" ? trim($post['drawer']) :"";
  186. $reviewer = isset($post['reviewer'])&&$post['reviewer']!="" ? trim($post['reviewer']) :"";
  187. $ownerPlace = isset($post['ownerPlace'])&&$post['ownerPlace']!="" ? trim($post['ownerPlace']) :"";
  188. $denomination = isset($post['denomination'])&&$post['denomination']!="" ? trim($post['denomination']) :"";
  189. $invoiceType = isset($post['invoiceType'])&&!empty($post['invoiceType']) ? $post['invoiceType']:[];
  190. if(($invoiceType!=''|| !empty($invoiceType))&& !empty(array_diff(array_filter($invoiceType),$this->invoiceType)))
  191. return error_show(1004,"存在无效发票类型");
  192. $data = [
  193. "company_name"=>$name,
  194. "company_address"=>$address,
  195. "company_license"=>$title,
  196. "bank_name"=>$bank,
  197. "bankNo"=>$bankNo,
  198. "contector"=>$contector,
  199. "mobile"=>$mobile,
  200. "company_img"=>$img,
  201. "input_ticket"=>$inputTicket,
  202. "out_ticket"=>$outTicket,
  203. "voider"=>$voider,
  204. "payee"=>$payee,
  205. "drawer"=>$drawer,
  206. "reviewer"=>$reviewer,
  207. "ownerPlace"=>$ownerPlace,
  208. "denomination"=>$denomination,
  209. "invoiceType"=>$invoiceType!=''|| !empty($invoiceType)?implode(",",array_filter($invoiceType)):"",
  210. "updatetime"=>date("Y-m-d H:i:s")
  211. ];
  212. $result = Db::name("company_info")->where("companyNo","=",$companyNo)->update($data);
  213. return $result? app_show(0,"更新成功"):error_show(1005,"更新失败");
  214. }
  215. /**
  216. * 显示指定的资源
  217. *
  218. * @param int $id
  219. * @return \think\Response
  220. */
  221. public function status()
  222. {
  223. $post =$this->post;
  224. $companyNo = isset($post['companyNo'])&& $post['companyNo']!="" ? trim($post['companyNo']) :"";
  225. if($companyNo==""){
  226. return error_show(1004,"参数companyNo 不能为空");
  227. }
  228. $status = isset($post['status'])&&$post['status']!="" ? trim($post['status']) :"";
  229. if($status==""){
  230. return error_show(1004,"参数status 不能为空");
  231. }
  232. if(!in_array($status,[0,1])){
  233. return error_show(1004,"参数status 无效");
  234. }
  235. $message = $status==1 ?"启用" :"禁用";
  236. $data = [
  237. "status"=>$status,
  238. "updatetime"=>date("Y-m-d H:i:s")
  239. ];
  240. $result = Db::name("company_info")->where("companyNo","=",$companyNo)->update($data);
  241. return $result? app_show(0,"{$message}成功"):error_show(1005,"{$message}失败");
  242. }
  243. /**
  244. * 显示编辑资源表单页.
  245. *
  246. * @param int $id
  247. * @return \think\Response
  248. */
  249. public function list()
  250. {
  251. $post =$this->post;
  252. $condition = [["is_del","=",0]];
  253. $companyNo = isset($post['companyNo'])&& $post['companyNo']!="" ? trim($post['companyNo']) :"";
  254. if($companyNo!=""){
  255. $condition[]=['companyNo',"=",$companyNo];
  256. }
  257. $companyName = isset($post['companyName'])&&$post['companyName']!="" ? trim($post['companyName']) :"";
  258. if($companyName!=""){
  259. $condition[]=['b.name',"like","%$companyName%"];
  260. }
  261. $status = isset($post['status'])&&$post['status']!=="" ? intval($post['status']) :"";
  262. if($status!==""){
  263. $condition[]=['a.status',"=",$status];
  264. }
  265. $page = isset($post['page'])&& $post['page']!="" ? intval($post['page']) :1;
  266. $size = isset($post['size'])&& $post['size']!="" ? intval($post['size']) :10;
  267. $count = Db::name("company_info")->alias("a")
  268. ->leftJoin("supplier_info b","a.companyNo=b.code")
  269. ->where($condition)->count();
  270. $total = ceil($count/$size)>1 ? ceil($count/$size) : 1;
  271. $page = $page>=$total?intval($total):$page;
  272. $list = Db::name("company_info")->alias("a")
  273. ->leftJoin("supplier_info b","a.companyNo=b.code")
  274. ->where($condition)
  275. ->field("a.*,b.name")
  276. ->page($page,$size)
  277. ->order("id desc")
  278. ->select();
  279. return app_show(0,"获取成功",['list'=>$list,"count"=>$count]);
  280. }
  281. /**
  282. * 保存更新的资源
  283. *
  284. * @param \think\Request $request
  285. * @param int $id
  286. * @return \think\Response
  287. */
  288. public function all()
  289. {
  290. $condition = [["is_del","=",0]];
  291. $companyNo = isset($post['companyNo'])&& $post['companyNo']!="" ? trim($post['companyNo']) :"";
  292. if($companyNo!=""){
  293. $condition[]=['companyNo',"=",$companyNo];
  294. }
  295. $companyName = isset($post['companyName'])&&$post['companyName']!="" ? trim($post['companyName']) :"";
  296. if($companyName!=""){
  297. $condition[]=['company_name',"like","%$companyName%"];
  298. }
  299. $list = Db::name("company_info")->where($condition)->field("companyNo,company_name,status,bank_name,bankNo,company_license,LENGTH('company_name') as weight")->order("weight asc")->select();
  300. return app_show(0,"获取成功",$list);
  301. }
  302. /** 获取利率设置
  303. * @return \think\response\Json|void
  304. * @throws \think\db\exception\DataNotFoundException
  305. * @throws \think\db\exception\DbException
  306. * @throws \think\db\exception\ModelNotFoundException
  307. */
  308. public function RateList(){
  309. $list=Db::name("order_rate")->where("status","=",1)->select();
  310. return app_show(0,"获取成功",$list);
  311. }
  312. }