join(['pg_bill_detail'=>'bd'],'b.bill_id=bd.bill_id') ->join('inquiry i', 'b.order_no = i.order_no') ->field($field) ->where(new Where($where)) ->order('b.apply_time desc') ->paginate($paginate) // ->fetchSql(true)->select(); ->each(function ($item,$key){ $pic=new Attachment(); $item['bill_type_str'] = getDictionaryName('BILL_TYPE', $item['bill_type']); $item['invoice_type_str'] = getDictionaryName('INVOICE_TYPE', $item['invoice_type']); $item['bill_cate_str'] = $item['bill_cate']==1?"常规":"非常规"; $item['bill_status_str'] =!empty($item['bill_status'])? getDictionaryName('BILL_STATUS', $item['bill_status']):""; $item['estate_name_array']=[]; $item['inquiry_bank_name']=trim($item['i_bank_name'].'-'.$item['bank_branch_name'].'-'.$item['bank_sub_name'],'-'); if(!empty($item['estate_name'])){ $temp['show']=explode(',',$item['estate_name'])[0]; $temp['array']=explode(',',$item['estate_name']); $item['estate_name_array']=$temp; } if(!empty($item['paid_status'])){ $item['paid_status_str']=$item['paid_status']==1?"已收":"未收"; } if(!empty($item['bill_attachment'])){ $item['bill_attachment']=$pic->getUrls($item['bill_attachment']); } return $item; })->toArray(); return $res; } public function addBill(array $data){ Db::startTrans(); $this->order_no = $data['order_no']; $this->report_no = trim($data['report_no']); $this->estate_name = $data['estate_name']; $this->bill_cate = $data['bill_cate']; $this->bill_type = $data['bill_type']; $this->bill_status = 1; $this->bill_cate_type = $data['bill_cate_type']; $this->apply_time = date('Y-m-d H:i:s'); $this->applicant_id = $data['user_id']; $this->applicant = $data['user_name']; $this->create_time = date('Y-m-d H:i:s'); $this->update_time = date('Y-m-d H:i:s'); $this->pay = $data['pay']; $this->confirm_pay = $data['confirm_pay']; $this->paid_status = $data['paid_status']; //业务人员id、业务人员name $res = DB::name('inquiry')->field('user_id,user_name,department_id,department_name')->where(['order_no'=>$data['order_no']])->find(); $this->salesman_id = $res['user_id']; $this->salesman_name = $res['user_name']; $this->department_id = $res['department_id']; $this->department_name = $res['department_name']; if (!$this->save()){ Db::rollback(); throw new \Exception('bill表插入异常'); } $billDetail = new BillDetail(); $billDetail->bill_id = $this->id; if(isset($data['invoice_type'])) $billDetail->invoice_type = $data['invoice_type']; $billDetail->bill_amount = $data['bill_amount']; $billDetail->bill_content = $data['bill_content']; $billDetail->bill_title = $data['bill_title']; if(isset($data['taxpayer_no'])) $billDetail->taxpayer_no = $data['taxpayer_no']; if(isset($data['tel'])) $billDetail->tel = $data['tel']; if(isset($data['bank_id'])) $billDetail->bank_id = $data['bank_id']; if(isset($data['bank_branch_id'])) $billDetail->bank_branch_id = $data['bank_branch_id']; if(isset($data['bank_name'])) $billDetail->bank_name = $data['bank_name']; if(isset($data['bank_account'])) $billDetail->bank_account = $data['bank_account']; if(isset($data['company_addr'])) $billDetail->company_addr = $data['company_addr']; if(isset($data['apply_reason'])) $billDetail->apply_reason = $data['apply_reason']; if (isset($data['bill_attachment']) && !empty($data['bill_attachment'])) $billDetail->bill_attachment = implode(",", $data['bill_attachment']); $billDetail->create_time = date('Y-m-d H:i:s'); $billDetail->update_time = date('Y-m-d H:i:s'); if (!$billDetail->save()){ Db::rollback(); throw new \Exception('billDetail表插入异常'); } Db::commit(); return true; } } ?>