|
@@ -6,6 +6,7 @@ use app\admin\BaseController;
|
|
|
use app\admin\model\ReportCode;
|
|
|
use think\App;
|
|
|
use think\facade\Db;
|
|
|
+use think\facade\Cache;
|
|
|
|
|
|
class OrderInv extends BaseController{
|
|
|
public function __construct(App $app) {
|
|
@@ -15,14 +16,32 @@ class OrderInv extends BaseController{
|
|
|
* 新建销售单开票申请
|
|
|
*/
|
|
|
public function create(){
|
|
|
- $buy_id = isset($this->post['buy_id'])&&$this->post['buy_id']!=='' ? intval($this->post['buy_id']):"";
|
|
|
- if($buy_id==''){
|
|
|
- return error_show(1004,"参数 buy_id 不能为空");
|
|
|
- }
|
|
|
+ $companyType = isset($this->post['companyType'])&&$this->post['companyType']!=='' ? trim($this->post['companyType']):"";
|
|
|
+ if ($companyType==''){
|
|
|
+ return error_show(1004,"参数 companyType 不能为空");
|
|
|
+ }
|
|
|
+ if($companyType!="03"){
|
|
|
+ $buy_id = isset($this->post['buy_id'])&&$this->post['buy_id']!=='' ? intval($this->post['buy_id']):"";
|
|
|
+ if($buy_id==''){
|
|
|
+ return error_show(1004,"参数 buy_id 不能为空");
|
|
|
+ }
|
|
|
$buyinfo =Db::name("customer_invoice")->where(['id'=>$buy_id,"is_del"=>0])->find();
|
|
|
if($buyinfo==false){
|
|
|
return error_show(1004,"购买方发票信息未找到");
|
|
|
}
|
|
|
+ }else{
|
|
|
+ $username= isset($this->post['username'])&&$this->post['username']!=='' ? trim($this->post['username']):"个人";
|
|
|
+ $userID=isset($this->post['userID'])&&$this->post['userID']!=='' ? trim($this->post['userID']):"";
|
|
|
+ $buyinfo=[
|
|
|
+ "invoice_title"=>$username,
|
|
|
+ "invoice_code"=>$userID,
|
|
|
+ "invoice_addr"=>'',
|
|
|
+ "invoice_mobile"=>'',
|
|
|
+ "invoice_bank"=>'',
|
|
|
+ "invoice_bankNo"=>'',
|
|
|
+ ] ;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
$companyNo = isset($this->post['companyNo'])&&$this->post['companyNo']!=='' ? trim($this->post['companyNo']):"";
|
|
|
if($companyNo==''){
|
|
@@ -45,10 +64,7 @@ class OrderInv extends BaseController{
|
|
|
return error_show(1004,"参数 invtype 不能为空");
|
|
|
}
|
|
|
$email = isset($this->post['email'])&&$this->post['email']!=='' ? trim($this->post['email']):"";
|
|
|
- $companyType = isset($this->post['companyType'])&&$this->post['companyType']!=='' ? trim($this->post['companyType']):"";
|
|
|
- if ($companyType==''){
|
|
|
- return error_show(1004,"参数 companyType 不能为空");
|
|
|
- }
|
|
|
+
|
|
|
$remark = isset($this->post['remark'])&&$this->post['remark']!=='' ? trim($this->post['remark']):"";
|
|
|
$orderArr = isset($this->post['orderArr'])&&!empty($this->post['orderArr']) ? $this->post['orderArr']:[];
|
|
|
if(empty($orderArr)){
|
|
@@ -155,7 +171,7 @@ class OrderInv extends BaseController{
|
|
|
"inv_type"=>$invtype,//发票类型 专用 普通 电子专用 电子普通
|
|
|
"open_type"=>0, //开票类型 金税开票 金税线下 纯线下
|
|
|
"is_ticket"=>$company['out_ticket'], //是否支持金税开票
|
|
|
- "company_type"=>$companyType, //类型01 企业,02 机关事业单位,03 个人, 04 其他
|
|
|
+ "company_type"=> $buyinfo['company_type'], //类型01 企业,02 机关事业单位,03 个人, 04 其他
|
|
|
"remark"=>$remark, //申请备注
|
|
|
"exam_remark"=>'', //审核备注
|
|
|
"ainv_fee"=>0,//已核销金额
|
|
@@ -197,12 +213,12 @@ class OrderInv extends BaseController{
|
|
|
}
|
|
|
Db::rollback();
|
|
|
return error_show(1004,"确认单发票申请失败");
|
|
|
- }catch (Exception $e){
|
|
|
+ }catch (\Exception $e){
|
|
|
Db::rollback();
|
|
|
return error_show(1004,$e->getMessage());
|
|
|
}
|
|
|
}
|
|
|
- // 0 待财务开票/待金税开票 1待财务审核 2待填写物流 3开票完成 4开票失败/开票驳回 5财务驳回 6退票
|
|
|
+ // 0 待财务开票/待金税开票 1待财务审核 2待填写物流 3开票完成 4开票失败/开票驳回 5财务驳回 6退票 7金税开票中
|
|
|
public function status(){
|
|
|
$invNo = isset($this->post['invNo'])&&$this->post['invNo']!=''?trim($this->post['invNo']):"";
|
|
|
if($invNo==""){
|
|
@@ -237,6 +253,8 @@ class OrderInv extends BaseController{
|
|
|
if($total_fee==='') return error_show(1004,"参数 tatal_fee 不能为空");
|
|
|
if($subtotal_fee==='') return error_show(1004,"参数 subtotal_fee 不能为空");
|
|
|
if($total_fee!=$invinfo['inv_value'])return error_show(1004,"发票金额不足");
|
|
|
+ }else{
|
|
|
+ $status=7;
|
|
|
}
|
|
|
}
|
|
|
$update=[
|
|
@@ -250,8 +268,8 @@ class OrderInv extends BaseController{
|
|
|
|
|
|
$invup =Db::name("invoice_pool")->where($invinfo)->update($update);
|
|
|
if($invup){
|
|
|
- if($status==1){
|
|
|
- if($open_type!=1){
|
|
|
+ if($status==1&& $open_type!=1){
|
|
|
+
|
|
|
$invpool=[
|
|
|
"invNo"=>$invinfo['invNo'],
|
|
|
"inv_type"=>$open_type,
|
|
@@ -270,7 +288,8 @@ class OrderInv extends BaseController{
|
|
|
Db::rollback();
|
|
|
return error_show(1004,"发票信息添加失败");
|
|
|
}
|
|
|
- }else{
|
|
|
+ }
|
|
|
+ if($status==7 && $open_type==1){
|
|
|
$invpoolinfo =Db::name("invoice_pool_info")->where(["invNo"=>$invNo])->findOrEmpty();
|
|
|
if(empty($invpoolinfo)){
|
|
|
Db::rollback();
|
|
@@ -327,7 +346,7 @@ class OrderInv extends BaseController{
|
|
|
"DDMXXX"=>$goodinfo,
|
|
|
"FPLXDM"=>invoiceType($invinfo['inv_type']),
|
|
|
"DDQQPCH"=>"",
|
|
|
- "DDQQLSH"=>randomkeys(40),
|
|
|
+ "DDQQLSH"=>randomkeys(26).date("YmdHis"),
|
|
|
"status"=>"0",
|
|
|
"addtime"=>date("Y-m-d H:i:s"),
|
|
|
"updatetime"=>date("Y-m-d H:i:s")
|
|
@@ -337,8 +356,9 @@ class OrderInv extends BaseController{
|
|
|
Db::rollback();
|
|
|
return error_show(1003,"开票信息生成失败");
|
|
|
}
|
|
|
+ Cache::push("invoiceList",$data["DDQQLSH"]);
|
|
|
}
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
if($status==4 ||$status==5 ){
|
|
|
$qrdArr=Db::name("assoc")->where(["viceCode"=>$invNo,"is_del"=>0])->column("id,orderCode,cancel_fee");
|
|
@@ -381,7 +401,7 @@ class OrderInv extends BaseController{
|
|
|
}
|
|
|
Db::rollback();
|
|
|
return error_show(1004,"审核失败");
|
|
|
- }catch (Exception $e){
|
|
|
+ }catch (\Exception $e){
|
|
|
Db::rollback();
|
|
|
return error_show(1004,$e->getMessage());
|
|
|
}
|