From 729136a95cfddaedee9008663e761e95db56edcd Mon Sep 17 00:00:00 2001 From: zhengyongxing Date: Thu, 16 Jul 2020 13:46:51 +0800 Subject: [PATCH] =?UTF-8?q?=E8=81=9A=E5=90=88=E8=AE=A2=E5=8D=95=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=AF=BC=E5=87=BA=EF=BC=8C=E5=8F=8A=E9=87=8D=E7=AE=97?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AggregateFinanceSetController.class.php | 67 +++++++++++++++--- ...regateFinanceStatementController.class.php | 26 ++++++- Public/Admin/excel/aggregate_stream.xls | Bin 26624 -> 24576 bytes 3 files changed, 83 insertions(+), 10 deletions(-) diff --git a/Application/Admin/Controller/AggregateFinanceSetController.class.php b/Application/Admin/Controller/AggregateFinanceSetController.class.php index ce6c7febe..de8b7deb3 100644 --- a/Application/Admin/Controller/AggregateFinanceSetController.class.php +++ b/Application/Admin/Controller/AggregateFinanceSetController.class.php @@ -112,6 +112,8 @@ class AggregateFinanceSetController extends Controller { ]; $dataurl .= $this->apihost."&".http_build_query($arr); $html = file_get_contents($dataurl); +// echo $dataurl;die(); + sleep(5); $rsp = json_decode($html,true); if($rsp['code'] != 1){ echo $rsp['error'].PHP_EOL;die; @@ -135,8 +137,20 @@ class AggregateFinanceSetController extends Controller { $v['create_time'] = time(); $v['admin_name'] = "system"; $v['admin_id'] = 0; - $v['second_party_info'] = json_encode([ - "partner"=>$v['channel_name'] + $v['second_party_info'] = + json_encode([ + "partner"=>$v['channel_name'], + "invoice_type"=>$v['invoice_type'], + "invoice_item"=>$v['invoice_item'], + "company_tax_no"=>$v['tax_identification_number'], + "link_man"=>$v['connection_person'], + "link_phone"=>$v['phone'], + "address"=>$v['send_address'], + "register_address"=>$v['register_address'], + "register_phone"=>$v['register_phone'], + "payee_name"=>$v['bank_user'], + "bank_account"=>$v['bank_card'], + "opening_bank"=>$v['bank_name'], ],JSON_UNESCAPED_UNICODE); $Aggregate->add($v); } @@ -193,12 +207,48 @@ class AggregateFinanceSetController extends Controller { $v['admin_id'] = $_SESSION['onethink_admin']['user_auth']['uid']; $v['verify_status'] = 0; - $first_party_info = json_decode($info['first_party_info'], 1); - if($first_party_info['partner'] == $info['channel_name']){ - $v['second_party_info'] = $info['first_party_info']; - $v['first_party_info'] = $info['second_party_info']; - $v['pay_type'] =0; - } +// $first_party_info = json_decode($info['first_party_info'], 1); +// if($first_party_info['partner'] == $info['channel_name']){ + + $v['second_party_info'] = + json_encode([ + "partner"=>$v['channel_name'], + "invoice_type"=>$v['invoice_type'], + "invoice_item"=>$v['invoice_item'], + "company_tax_no"=>$v['tax_identification_number'], + "link_man"=>$v['connection_person'], + "link_phone"=>$v['phone'], + "address"=>$v['send_address'], + "register_address"=>$v['register_address'], + "register_phone"=>$v['register_phone'], + "payee_name"=>$v['bank_user'], + "bank_account"=>$v['bank_card'], + "opening_bank"=>$v['bank_name'], + ],JSON_UNESCAPED_UNICODE); + + $v['first_party_info'] = ''; + + $v['pay_type'] =0; +// } else { +// $v['second_party_info'] = +// json_encode([ +// "partner"=>$v['channel_name'], +// "invoice_type"=>$v['invoice_type'], +// "invoice_item"=>$v['invoice_item'], +// "company_tax_no"=>$v['tax_identification_number'], +// "link_man"=>$v['connection_person'], +// "link_phone"=>$v['phone'], +// "address"=>$v['send_address'], +// "register_address"=>$v['register_address'], +// "register_phone"=>$v['register_phone'], +// "payee_name"=>$v['bank_user'], +// "bank_account"=>$v['bank_card'], +// "opening_bank"=>$v['bank_name'], +// ],JSON_UNESCAPED_UNICODE); +// +// $v['pay_type'] =1; +// } + $res = $Aggregate->where("id='{$id}'")->save($v); if(empty($res)){ @@ -220,6 +270,7 @@ class AggregateFinanceSetController extends Controller { if($first_party_info['partner'] == $info['channel_name']){ $savedata['second_party_info'] = $info['first_party_info']; $savedata['first_party_info'] = $info['second_party_info']; + $savedata['pay_type'] =0; } diff --git a/Application/Admin/Controller/AggregateFinanceStatementController.class.php b/Application/Admin/Controller/AggregateFinanceStatementController.class.php index 8de0b0f1d..faf1ad96d 100644 --- a/Application/Admin/Controller/AggregateFinanceStatementController.class.php +++ b/Application/Admin/Controller/AggregateFinanceStatementController.class.php @@ -205,6 +205,15 @@ class AggregateFinanceStatementController extends ThinkController }else{ $cpCompany = M("aggregate_statement","tab_")->field("id,second_party_info")->where("id={$CompanyId}")->find(); $info = json_decode($cpCompany['second_party_info'],true); + +// $info['link_man'] = $info['connection_person']; +// $info['link_phone'] = $info['phone']; +// $info['address'] = $info['send_address']; +// $info['company_tax_no'] = $info['tax_identification_number']; +// +// $info['payee_name'] = $info['bank_user']; +// $info['bank_account'] = $info['bank_card']; +// $info['company_tax_no'] = $info['tax_identification_number']; } $info['invoice_item'] = "信息技术服务费"; $info['invoice_type'] = "增值税专用发票"; @@ -576,14 +585,27 @@ class AggregateFinanceStatementController extends ThinkController $objPHPExcel->getActiveSheet()->setCellValue('B'.($line+3), $data['first_party_info']['partner']);//甲方 $objPHPExcel->getActiveSheet()->setCellValue('B'.($line+4), $data['first_party_info']['link_man']);//联系人 $objPHPExcel->getActiveSheet()->setCellValue('B'.($line+5), $data['first_party_info']['link_phone']);//联系电话 - $objPHPExcel->getActiveSheet()->setCellValue('B'.($line+6), $data['second_party_info']['invoice_item']);//开票项目 - $objPHPExcel->getActiveSheet()->setCellValue('B'.($line+7), $data['second_party_info']['invoice_type']);//发票类型 + $objPHPExcel->getActiveSheet()->setCellValue('B'.($line+6), $data['first_party_info']['address']);//邮寄地址 +// $objPHPExcel->getActiveSheet()->setCellValue('B'.($line+7), $data['second_party_info']['invoice_type']);//发票类型 //乙方信息 $objPHPExcel->getActiveSheet()->setCellValue('E'.($line+3), $data['second_party_info']['partner']);//乙方 $objPHPExcel->getActiveSheet()->setCellValue('E'.($line+4), $data['second_party_info']['link_man']);//联系人 $objPHPExcel->getActiveSheet()->setCellValue('E'.($line+5), $data['second_party_info']['link_phone']);//联系电话 $objPHPExcel->getActiveSheet()->setCellValue('E'.($line+6), $data['second_party_info']['address']);//邮寄地址 + //开票信息 + $invoice_data = "发票类型:".$data['second_party_info']['invoice_type']; + $invoice_data .= "\n发票抬头:".$data['second_party_info']['partner']; + $invoice_data .= "\n纳税人识别号:".$data['second_party_info']['company_tax_no']; + + $invoice_data .= "\n开户银行:".$data['second_party_info']['opening_bank']; + $invoice_data .= "\n开户账号:".$data['second_party_info']['payee_name']; + $invoice_data .= "\n开票内容:".$data['second_party_info']['invoice_item']; + $invoice_data .= "\n注册地址及电话:".$data['second_party_info']['register_address'].",".$data['second_party_info']['register_phone']; + + $objPHPExcel->getActiveSheet()->setCellValue('B'.($line+7), $invoice_data);//乙方 + + $objPHPExcel->getActiveSheet()->setCellValue('E'.($line+8), $data['pay_company']['payee_name']);//户名 $objPHPExcel->getActiveSheet()->setCellValue('E'.($line+9), $data['pay_company']['bank_account']);//银行账号 $objPHPExcel->getActiveSheet()->setCellValue('E'.($line+10), $data['pay_company']['opening_bank']);//开户行 diff --git a/Public/Admin/excel/aggregate_stream.xls b/Public/Admin/excel/aggregate_stream.xls index c34f0dfbe3923e5a09daeb5df96dadfa18fe80cd..c5edb162ffdd9a2c80ecf5476887ba93ea5c368e 100644 GIT binary patch delta 7290 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 Gxc>u~Q@B$A