Files
annnj-company 130c1026c4 first commit
2026-04-17 18:29:53 +08:00

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;
}
}
?>