<?php
namespace app\index\controller;
use think\Hook;
use app\index\controller\Acl;
use app\index\model\Purchaseclass;
use app\index\model\Purchaseinfo;
use app\index\model\Purchasebill;
use app\index\model\Room;
use app\index\model\Roominfo;
use app\index\model\Account;
use app\index\model\Accountinfo;
use app\index\model\Serial;
use app\index\model\Serialinfo;
class Purchase extends Acl {
public function main(){
return $this->fetch();
}
public function set(){
$input=input('post.');
if(isset($input['id'])){
if(isset_full($input,'tab')){
foreach ($input['tab'] as $tab_key=>$tab_vo) {
$tab_vali = $this->validate($tab_vo,'Purchaseinfo') if($tab_vali!==true){
return json(['state'=>'error','info'=>'[ 数据表格 ]第'.($tab_key+1).'行'.$tab_vali]);
exit;
}
}
}else{
return json(['state'=>'error','info'=>'数据表格不可为空!']);
exit;
}
if(empty($input['id'])){
$input['merchant']=Session('is_merchant_id') $vali = $this->validate($input,'Purchaseclass');
if($vali===true){
$create_info=Purchaseclass::create(syn_sql($input,'purchaseclass'));
Hook::listen('create_purchase',$create_info) push_log('新增购货单[ '.$create_info['number'].' ]') $resule=['state'=>'success'];
}else{
$resule=['state'=>'error','info'=>$vali];
}
}else{
$vali = $this->validate($input,'Purchaseclass.update');
if($vali===true){
$update_info=Purchaseclass::update(syn_sql($input,'purchaseclass'));
Hook::listen('update_purchase',$update_info) push_log('更新购货单[ '.$update_info['number'].' ]') Purchaseinfo::where(['pid'=>$update_info['id']])->delete();
$resule=['state'=>'success'];
}else{
$resule=['state'=>'error','info'=>$vali];
}
}
if($resule['state']=='success'){
$info_pid=empty($input['id'])?$create_info['id']:$update_info['id'];
foreach ($input['tab'] as $info_vo) {
$info_vo['pid']=$info_pid;
(isset_full($info_vo,'attr') && $info_vo['attr']=='-1')&&($info_vo['attr']='') Purchaseinfo::create(syn_sql($info_vo,'purchaseinfo'));
}
}
}else{
$resule=['state'=>'error','info'=>'传入参数不完整!'];
}
if($resule['state']=='success'&&empty($input['id'])){
empty(get_sys(['auto_auditing']))||($this->auditing([$create_info['id']],true));
}
return json($resule);
}
public function form(){
return $this->fetch();
}
public function form_list(){
$input=input('post.');
if(isset_full($input,'page') && isset_full($input,'limit')){
$sql=get_sql($input,[
'name'=>'continue',
'number'=>'full_like',
'supplier'=>'full_division_in',
'start_time'=>'stime',
'end_time'=>'etime',
'type'=>'full_dec_1',
'warehouse'=>'continue',
'user'=>'full_division_in',
'account'=>'full_division_in',
'data'=>'full_like',
],'purchaseclass') if(isset_full($input,'name')){
$goods=get_db_field('goods',['name|py'=>['like','%'.$input['name'].'%']],'id') if(empty($goods)){
sql_assign($sql,'id',[]) }else{
$info=get_db_field('purchaseinfo',['goods'=>['in',$goods]],'pid') sql_assign($sql,'id',$info) }
}
if(isset_full($input,'warehouse')){
$info=get_db_field('purchaseinfo',['warehouse'=>['in',explode(",",$input['warehouse'])]],'pid') sql_assign($sql,'id',$info,'intersect') }
$sql['merchant']=['in',get_auth_merchant()] $sql=auth('purchaseclass',$sql) $count = Purchaseclass::where ($sql)->count() $arr = Purchaseclass::with('merchantinfo,supplierinfo,userinfo,accountinfo')->where($sql)->page($input['page'],$input['limit'])->order('id desc')->select() $resule=[
'code'=>0,
'msg'=>'获取成功',
'count'=>$count,
'data'=>$arr
] }else{
$resule=['state'=>'error','info'=>'传入参数不完整!'];
}
return json($resule);
}
public function info(){
$input=input('get.');
if(isset_full($input,'id')){
$class=Purchaseclass::where(['id'=>$input['id']])->find();
$info=Purchaseinfo::with('goodsinfo,warehouseinfo')->where(['pid'=>$input['id']])->select();
$this->assign('class',$class);
$this->assign('info',$info);
return $this->fetch('main');
}else{
$resule=['state'=>'error','info'=>'传入参数不完整!'];
}
return json($resule);
}
public function auditing($arr=[],$auto=false){
(empty($arr))&&($arr=input('post.arr')) if(empty($arr)){
$resule=['state'=>'error','info'=>'传入参数不完整!'];
}else{
$class_data=[] $info_data=[] foreach ($arr as $arr_vo) {
$class=Purchaseclass::where(['id'=>$arr_vo])->find();
$info=Purchaseinfo::where(['pid'=>$arr_vo])->select();
if(empty($class['type']['nod'])){
foreach ($info as $info_key=>$info_vo) {
if(!empty($info_vo['serial'])){
$serial_sql=['code'=>['in',explode(',',$info_vo['serial'])],'type'=>['neq',2]];
$serial=Serial::where($serial_sql)->find() if(!empty($serial)){
$auto&&(push_log('自动审核购货单[ '.$class['number'].' ]失败,原因:第'.($info_key+1).'行串码状态不正确!')) return json(['state'=>'error','info'=>'审核-购货单[ '.$class['number'].' ]失败,原因:第'.($info_key+1).'行串码状态不正确!']);
exit;
}
}
}
}else{
foreach ($info as $info_key=>$info_vo) {
if(!empty($info_vo['serial'])){
$serial_sql=['code'=>['in',explode(',',$info_vo['serial'])],'type'=>['neq',0]];
$serial=Serial::where($serial_sql)->find() if(!empty($serial)){
return json(['state'=>'error','info'=>'反审核-购货单[ '.$class['number'].' ]第'.($info_key+1).'行串码状态不正确!']);
exit;
}
}
}
}
$class_data[$arr_vo]=$class $info_data[$arr_vo]=$info }
foreach ($arr as $arr_vo) {
$class=$class_data[$arr_vo] $info=$info_data[$arr_vo] if(empty($class['type']['nod'])){
foreach ($info as $info_vo) {
$room_sql=[];
$room_sql['warehouse']=$info_vo['warehouse'];
$room_sql['goods']=$info_vo['goods'];
$room_sql['attr']=$info_vo['attr']['nod'];
$room_sql['batch']=$info_vo['batch'];
$room=Room::where($room_sql)->find();
if(empty($room)){
$room_sql['nums']=$info_vo['nums'];
$room=Room::create($room_sql);
}else{
Room::where(['id'=>$room['id']])->setInc('nums',$info_vo['nums']) }
$roominfo_sql['pid']=$room['id'];
$roominfo_sql['type']=1;
$roominfo_sql['class']=$arr_vo;
$roominfo_sql['info']=$info_vo['id'];
$roominfo_sql['nums']=$info_vo['nums'];
Roominfo::create($roominfo_sql);
Purchaseinfo::update(['id'=>$info_vo['id'],'room'=>$room['id']]) if (!empty($info_vo['serial'])){
$serial_arr=explode(',',$info_vo['serial']) foreach ($serial_arr as $serial_arr_vo) {
$serial=Serial::where(['code'=>$serial_arr_vo])->find() if(empty($serial)){
$oldroom=0 $serial=Serial::create (['code'=>$serial_arr_vo,'goods'=>$info_vo['goods'],'room'=>$room['id'],'type'=>0]);
}else{
$oldroom=$serial['room'] Serial::update(['id'=>$serial['id'],'goods'=>$info_vo['goods'],'room'=>$room['id'],'type'=>0]);
}
Serialinfo::create (['pid'=>$serial['id'],'type'=>1,'class'=>$arr_vo,'oldroom'=>$oldroom]);
}
}
}
if($class['money']==$class['actual']){
$billtype=2 }elseif($class['money']==0){
$billtype=0 }else {
$billtype=1 }
if (!empty($class['money'])){
$bill=Purchasebill::create(['pid'=>$arr_vo,'account'=>$class['account'],'money'=>$class['money'],'data'=>'系统自动生成','user'=>Session('is_user_id'),'time'=>time()]);
Account::where (['id'=>$class['account']])->setDec('balance',$class['money']) Accountinfo::create (['pid'=>$class['account'],'set'=>0,'money'=>$class['money'],'type'=>1,'time'=>time(),'user'=>Session('is_user_id'),'class'=>$arr_vo,'bill'=>$bill['id']]) }
Purchaseclass::update(['id'=>$arr_vo,'type'=>1,'auditinguser'=>Session('is_user_id'),'auditingtime'=>time(),'billtype'=>$billtype]) set_summary('purchase',$arr_vo,true) push_log(($auto?'自动':'').'审核购货单[ '.$class['number'].' ]');
}else{
foreach ($info as $info_vo){
Room::where (['id'=>$info_vo['room']])->setDec('nums',$info_vo['nums']) Purchaseinfo::update (['id'=>$info_vo['id'],'room'=>0]) if(!empty($info_vo['serial'])){
$serial=Serial::where(['code'=>['in',explode(',',$info_vo['serial'])]])->select() foreach ($serial as $serial_vo) {
$serialinfo=Serialinfo::where(['pid'=>$serial_vo['id'],'type'=>1,'class'=>$arr_vo])->find() Serial::update([
'id'=>$serial_vo['id'],
'room'=>$serialinfo['oldroom'],
'type'=>2
]);
Serialinfo::where(['id'=>$serialinfo['id']])->delete() }
}
}
Roominfo::where(['type'=>1,'class'=>$arr_vo])->delete() if (!empty($class['money'])){
$bill=Purchasebill::where(['pid'=>$arr_vo])->select();
foreach ($bill as $bill_vo){
Account::where(['id'=>$bill_vo['account']])->setInc('balance',$bill_vo['money']) }
Accountinfo::destroy (['type'=>1,'class'=>$arr_vo]) Purchasebill::destroy(['pid'=>$arr_vo]) }
Purchaseclass::update(['id'=>$arr_vo,'type'=>0,'money'=>0,'auditinguser'=>0,'auditingtime'=>0,'billtype'=>-1]) set_summary('purchase',$arr_vo,false) push_log ('反审核购货单[ '.$class['number'].' ]');
}
}
$resule=['state'=>'success'];
}
return $auto?true:json($resule);
}
public function del(){
$input=input('post.');
if(isset_full($input,'arr') && is_array($input['arr'])){
$class=db('purchaseclass')->where(['id'=>['in',$input['arr']]])->select()->ToArray() $data = searchdata($class,['type'=>['eq',1]]) if(empty($data)){
foreach ($class as $class_vo) {
push_log('删除购货单[ '.$class_vo['number'].' ]') Hook::listen('del_purchase',$class_vo['id']) }
Purchaseclass::where(['id'=>['in',$input['arr']]])->delete();
Purchaseinfo::where(['pid'=>['in',$input['arr']]])->delete();
$resule=['state'=>'success'];
}else{
$resule=['state'=>'error','info'=>'购货单[ '.$data[0]['number'].' ]已审核,不可删除!'];
}
}else{
$resule=['state'=>'error','info'=>'传入参数不完整!'];
}
return json($resule);
}
public function exports(){
$input=input('get.');
if(isset($input['mode'])){
push_log('导出购货单数据') $sql=get_sql($input,[
'name'=>'continue',
'number'=>'full_like',
'supplier'=>'full_division_in',
'start_time'=>'stime',
'end_time'=>'etime',
'type'=>'full_dec_1',
'warehouse'=>'continue',
'user'=>'full_division_in',
'account'=>'full_division_in',
'data'=>'full_like',
],'purchaseclass') if(isset_full($input,'name')){
$goods=get_db_field('goods',['name|py'=>['like','%'.$input['name'].'%']],'id') if(empty($goods)){
sql_assign($sql,'id',[]) }else{
$info=get_db_field('purchaseinfo',['goods'=>['in',$goods]],'pid') sql_assign($sql,'id',$info) }
}
if(isset_full($input,'warehouse')){
$info=get_db_field('purchaseinfo',['warehouse'=>['in',explode(",",$input['warehouse'])]],'pid') sql_assign($sql,'id',$info,'intersect') }
$sql['merchant']=['in',get_auth_merchant()] $sql=auth('purchaseclass',$sql) $arr = Purchaseclass::with('merchantinfo,supplierinfo,userinfo,accountinfo')->where($sql)->order('id desc')->select() if(empty($input['mode'])){
$formfield=get_formfield('purchase_export','array') $excel=[] array_push($excel,['type'=>'title','info'=>'购货单列表']);
$table_cell=[] foreach ($formfield as $formfield_vo) {
$table_cell[$formfield_vo['key']]=$formfield_vo['text'];
}
$table_data=[] foreach ($arr as $arr_vo) {
$row_data=[];
foreach ($formfield as $formfield_vo) {
$val='nod_initial' foreach (explode('|',$formfield_vo['data']) as $source) {
$val=$val=='nod_initial'?$arr_vo[$source]:(isset($val[$source])?$val[$source]:'');
}
$row_data[$formfield_vo['key']]=$val }
array_push($table_data,$row_data) }
array_push($excel,['type'=>'table','info'=>['cell'=>$table_cell,'data'=>$table_data]]) $sum_arr=get_sums($table_data,['total','actual','money']);
array_push($excel,['type'=>'node','info'=>[
'单据总金额:'.$sum_arr['total'],
'实际总金额:'.$sum_arr['actual'],
'实付总金额:'.$sum_arr['money'],
]]) export_excel('购货单列表',$excel);
}else{
$files=[] $formfield=get_formfield('purchase_exports','array') $sys=get_sys(['enable_batch','enable_serial']);
empty($sys['enable_batch'])&&(arrs_key_del($formfield,['key','batch']));
empty($sys['enable_serial'])&&(arrs_key_del($formfield,['key','serial']));
foreach ($arr as $arr_vo) {
$excel=[] array_push($excel,['type'=>'title','info'=>'购货单']);
array_push($excel,['type'=>'node','info'=>[
'供应商:'.$arr_vo['supplierinfo']['name'],
'',
'单据日期:'.$arr_vo['time'],
'',
'单据编号:'.$arr_vo['number'],
]]);
$info=Purchaseinfo::where(['pid'=>$arr_vo['id']])->select();
$table_cell=[] foreach ($formfield as $formfield_vo) {
$table_cell[$formfield_vo['key']]=$formfield_vo['text'];
}
$table_data=[] foreach ($info as $info_vo) {
$row_data=[];
foreach ($formfield as $formfield_vo) {
$val='nod_initial' foreach (explode('|',$formfield_vo['data']) as $source) {
$val=$val=='nod_initial'?$info_vo[$source]:(isset($val[$source])?$val[$source]:'');
}
$row_data[$formfield_vo['key']]=$val }
array_push($table_data,$row_data) }
array_push($excel,['type'=>'table','info'=>['cell'=>$table_cell,'data'=>$table_data]]) array_push($excel,['type'=>'node','info'=>[
'单据金额:'.$arr_vo['total'],
'',
'实际金额:'.$arr_vo['actual'],
'',
'实付金额:'.$arr_vo['money'],
]]);
array_push($excel,['type'=>'node','info'=>[
'制单人:'.$arr_vo['userinfo']['name'],
'',
'结算账户:'.$arr_vo['accountinfo']['name'],
'',
'备注信息:'.$arr_vo['data'],
]]);
$path=export_excel($arr_vo['number'],$excel,false) array_push($files,$path) }
file_to_zip('购货单明细',$files) }
}else{
$resule=['state'=>'error','info'=>'传入参数不完整!'];
}
return json($resule);
}
public function prints(){
$input=input('get.');
if(isset_full($input,'id')){
$print_name='purchase' $class=Purchaseclass::where(['id'=>$input['id']])->find();
$info=Purchaseinfo::where(['pid'=>$input['id']])->select();
$sys=get_sys(['enable_batch','enable_serial','print_paper']);
$formfield=get_formfield('purchase_print','array') empty($sys['enable_batch'])&&(arrs_key_del($formfield,['key','batch']));
empty($sys['enable_serial'])&&(arrs_key_del($formfield,['key','serial']));
$tab_html=get_print_tab($formfield,$info);
$print=get_print($print_name);
$print_text=$print[empty($sys['print_paper'])?'paper4':'paper2'];
$this->assign('class',$class);
$this->assign('tab_html',$tab_html);
$this->assign('print_name',$print_name);
$this->assign('paper_type',$sys['print_paper']);
$this->assign('print_text',$print_text);
return $this->fetch();
}else{
$resule=['state'=>'error','info'=>'传入参数不完整!'];
}
return json($resule);
}
public function bill(){
return $this->fetch();
}
public function bill_list(){
$input=input('post.');
if(isset_full($input,'page') && isset_full($input,'limit')){
$sql=get_sql($input,[
'number'=>'full_like',
'supplier'=>'full_division_in',
'billtype'=>'full_dec_1',
'start_time'=>'stime',
'end_time'=>'etime',
'account'=>'full_division_in',
'user'=>'full_division_in',
'data'=>'full_like',
],'purchaseclass') $whereor=[] if(isset_full($input,'account')){
$info=get_db_field('purchasebill',['account'=>['in',explode(",",$input['account'])]],'pid') sql_assign($whereor,'id',$info) }
$sql['type']=1 $sql['merchant']=['in',get_auth_merchant()] $sql=auth('purchaseclass',$sql) $count = Purchaseclass::where($sql)->whereor($whereor)->count() $arr = Purchaseclass::with('merchantinfo,supplierinfo,userinfo,accountinfo')->where($sql)->whereor($whereor)->page($input['page'],$input['limit'])->order('id desc')->select() $resule=[
'code'=>0,
'msg'=>'获取成功',
'count'=>$count,
'data'=>$arr
] }else{
$resule=['state'=>'error','info'=>'传入参数不完整!'];
}
return json($resule);
}
public function bill_info(){
$input=input('post.');
if(isset_full($input,'id')){
$resule=Purchasebill::with('accountinfo,userinfo')->where(['pid'=>$input['id']])->order('id desc')->select();
}else{
$resule=['state'=>'error','info'=>'传入参数不完整!'];
}
return json($resule);
}
public function add_bill(){
$input=input('post.');
if(isset_full($input,'pid') && isset_full($input,'account') && isset_full($input,'money')){
$class=Purchaseclass::where(['id'=>$input['pid']])->find() $plus=bcadd($class['money'],$input['money'],config('decimal')) if($plus>$class['actual']){
$resule=['state'=>'error','info'=>'结算金额不可超出未结算金额!'];
}else{
$billtype=($plus==$class['actual'])?2:1 Purchaseclass::where(['id'=>$input['pid']])->update(['billtype'=>$billtype,'money'=>$plus]) $input['time']=time();
$input['user']=Session('is_user_id');
$create_info=Purchasebill::create(syn_sql($input,'purchasebill'));
Hook::listen('create_purchasebill',$create_info) Account::where (['id'=>$input['account']])->setDec('balance',$input['money']) Accountinfo::create (['pid'=>$input['account'],'set'=>0,'money'=>$input['money'],'type'=>1,'time'=>time(),'user'=>Session('is_user_id'),'class'=>$class['id'],'bill'=>$create_info['id']]) push_log('添加购货核销单信息[ '.$class['number'].' ]') $bill=Purchasebill::with('accountinfo,userinfo')->where(['id'=>$create_info['id']])->find();
$resule=['state'=>'success','info'=>$bill];
}
}else{
$resule=['state'=>'error','info'=>'传入参数不完整!'];
}
return json($resule);
}
public function del_bill(){
$input=input('post.');
if(isset_full($input,'id')){
$bill=Purchasebill::where(['id'=>$input['id']])->find() Purchasebill::where(['id'=>$input['id']])->delete() Hook::listen('del_purchasebill',$bill) Account::where(['id'=>$bill['account']])->setInc('balance',$bill['money']) Accountinfo::where(['type'=>1,'bill'=>$bill['id']])->delete() $class=Purchaseclass::where(['id'=>$bill['pid']])->find() $reduce=bcsub($class['money'],$bill['money'],config('decimal')) $billtype=($reduce>0)?1:0 Purchaseclass::where(['id'=>$bill['pid']])->update(['billtype'=>$billtype,'money'=>$reduce]) push_log('删除购货核销单信息[ '.$class['number'].' ]') $resule=['state'=>'success'];
}else{
$resule=['state'=>'error','info'=>'传入参数不完整!'];
}
return json($resule);
}
public function force_bill(){
$input=input('post.');
if(isset_full($input,'id')){
$class=Purchaseclass::where(['id'=>$input['id']])->find() Purchaseclass::where(['id'=>$input['id']])->update(['billtype'=>3]) push_log('强制核销购货核销单[ '.$class['number'].' ]') $resule=['state'=>'success'];
}else{
$resule=['state'=>'error','info'=>'传入参数不完整!'];
}
return json($resule);
}
public function set_bills(){
$input=input('post.');
if(isset_full($input,'arr') && isset_full($input,'account') && isset_full($input,'money')){
$number_arr=[] $tip='批量核销购货单[ '.date('YmdHi',time()).' ]';
$account=$input['account'] $money=$input['money'] $data=isset_full($input,'data')?$input['data']:$tip;
$class=Purchaseclass::where(['id'=>['in',$input['arr']]])->select() foreach ($class as $class_vo){
if(bccomp($money,0,config('decimal'))==0){
break }elseif(!in_array($class_vo['billtype']['nod'],[0,1])){
continue }else{
$difference=bcsub($class_vo['actual'],$class_vo['money'],config('decimal')) $this_money=(bccomp($money,$difference,config('decimal'))==1)?$difference:$money $plus=bcadd($class_vo['money'],$this_money,config('decimal')) $billtype=($plus==$class_vo['actual'])?2:1 Purchaseclass::where(['id'=>$class_vo['id']])->update(['billtype'=>$billtype,'money'=>$plus]) $create_bill=Purchasebill::create([
'pid'=>$class_vo['id'],
'account'=>$account,
'money'=>$this_money,
'data'=>$data,
'user'=>Session('is_user_id'),
'time'=>time()
]);
Hook::listen('create_purchasebill',$create_bill) Account::where (['id'=>$account])->setDec('balance',$this_money) Accountinfo::create (['pid'=>$account,'set'=>0,'money'=>$this_money,'type'=>1,'time'=>time(),'user'=>Session('is_user_id'),'class'=>$class_vo['id'],'bill'=>$create_bill['id'],'data'=>$data]) array_push($number_arr,$class_vo['number']);
$money=bcsub($money,$this_money,config('decimal')) }
}
if(!empty($number_arr)){
push_log($tip.' - 批量核销总金额为[ '.$input['money'].' ] - 实际核销单据号为[ '.implode(' | ',$number_arr).' ]') }
$resule=['state'=>'success','info'=>$number_arr];
}else{
$resule=['state'=>'error','info'=>'传入参数不完整!'];
}
return json($resule);
}
public function bill_export(){
$input=input('get.');
$sql=get_sql($input,[
'number'=>'full_like',
'supplier'=>'full_division_in',
'billtype'=>'full_dec_1',
'start_time'=>'stime',
'end_time'=>'etime',
'account'=>'full_division_in',
'user'=>'full_division_in',
'data'=>'full_like',
],'purchaseclass') $whereor=[] if(isset_full($input,'account')){
$info=get_db_field('purchasebill',['account'=>['in',explode(",",$input['account'])]],'pid') sql_assign($whereor,'id',$info) }
$sql['type']=1 $sql['merchant']=['in',get_auth_merchant()] $sql=auth('purchaseclass',$sql) $arr = Purchaseclass::with('merchantinfo,supplierinfo,userinfo,accountinfo')->where($sql)->order('id desc')->select() $formfield=get_formfield('purchasebill_export','array') $excel=[] array_push($excel,['type'=>'title','info'=>'购货核销单信息']);
$table_cell=[] foreach ($formfield as $formfield_vo) {
$table_cell[$formfield_vo['key']]=$formfield_vo['text'];
}
$table_data=[] foreach ($arr as $arr_vo) {
$row_data=[];
foreach ($formfield as $formfield_vo) {
$val='nod_initial' foreach (explode('|',$formfield_vo['data']) as $source) {
$val=$val=='nod_initial'?$arr_vo[$source]:(isset($val[$source])?$val[$source]:'');
}
$row_data[$formfield_vo['key']]=$val }
array_push($table_data,$row_data) }
array_push($excel,['type'=>'table','info'=>['cell'=>$table_cell,'data'=>$table_data]]) $sum_arr=get_sums($table_data,['total','actual','money']);
array_push($excel,['type'=>'node','info'=>[
'单据总金额:'.$sum_arr['total'],
'实际总金额:'.$sum_arr['actual'],
'实付总金额:'.$sum_arr['money'],
]]) push_log('导出购货核销单信息') export_excel('购货核销单信息',$excel);
}
}