127 lines
5.0 KiB
PHP
127 lines
5.0 KiB
PHP
<?php
|
|
namespace app\model;
|
|
// use think\Db;
|
|
use think\Db;
|
|
use think\db\Where;
|
|
use app\model\BillDetail;
|
|
|
|
class Bill extends Base
|
|
{
|
|
/**
|
|
* @Author pser
|
|
* @DateTime 2020-05-07
|
|
* @version 2.0
|
|
* @param array $field 查询字段值
|
|
* @param array $where 查询条件
|
|
* @param array $paginate 分页设置
|
|
* @return array
|
|
*/
|
|
public static function getBillList($field,$where,$paginate){
|
|
$res=self::alias('b')
|
|
->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;
|
|
}
|
|
}
|
|
?>
|