<?php
namespace app \index \controller ;
use think\Hook;
use think\Request;
use app\index\controller\Acl;
use app\index\model\Supplier as Suppliers;
use app\index\controller\Formfield;
class Supplier extends Acl {
public function main(){
return $this->fetch();
}
public function supplier_list(){
$input=input('post.');
if(isset_full($input,'page') && isset_full($input,'limit')){
$sql=get_sql($input,[
'name'=>'full_name_py_link',
'number'=>'full_like',
'contacts'=>'full_like',
'tel'=>'full_like',
'add'=>'full_like',
'data'=>'full_like'
],'supplier') $sql=auth('supplier',$sql) $count = Suppliers::where ($sql)->count() $arr = Suppliers::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 set_supplier(){
$input=input('post.');
if(isset($input['id'])){
if(empty($input['id'])){
$vali = $this->validate($input,'supplier');
if($vali===true){
$input['py']=zh2py($input['name']) $create_info=Suppliers::create(syn_sql($input,'supplier'));
Hook::listen('create_supplier',$create_info) push_log('新增供应商信息[ '.$create_info['name'].' ]') $resule=['state'=>'success'];
}else{
$resule=['state'=>'error','info'=>$vali];
}
}else{
$vali = $this->validate($input,'supplier.update');
if($vali===true){
$input['py']=zh2py($input['name']) $update_info=Suppliers::update(syn_sql($input,'supplier'));
Hook::listen('update_supplier',$update_info) push_log('更新供应商信息[ '.$update_info['name'].' ]') $resule=['state'=>'success'];
}else{
$resule=['state'=>'error','info'=>$vali];
}
}
}else{
$resule=['state'=>'error','info'=>'传入参数不完整!'];
}
return json($resule);
}
public function get_supplier(){
$input=input('post.');
if(isset_full($input,'id')){
$resule=Suppliers::where(['id'=>$input['id']])->find();
}else{
$resule=['state'=>'error','info'=>'传入参数不完整!'];
}
return json($resule);
}
public function del_supplier(){
$input=input('post.');
if(isset_full($input,'arr') && is_array($input['arr'])){
$exist=more_table_find([
['table'=>'purchaseclass','where'=>['supplier'=>['in',$input['arr']]]],
['table'=>'repurchaseclass','where'=>['supplier'=>['in',$input['arr']]]],
['table'=>'rpurchaseclass','where'=>['supplier'=>['in',$input['arr']]]],
['table'=>'paymentclass','where'=>['supplier'=>['in',$input['arr']]]],
]);
if(!$exist){
$info=db('supplier')->where(['id'=>['in',$input['arr']]])->select() foreach ($info as $info_vo) {
push_log('删除供应商信息[ '.$info_vo['name'].' ]') Hook::listen('del_supplier',$info_vo['id']) }
Suppliers::where(['id'=>['in',$input['arr']]])->delete();
$resule=['state'=>'success'];
}else{
$resule=['state'=>'error','info'=>'存在数据关联,删除失败!'];
}
}else{
$resule=['state'=>'error','info'=>'传入参数不完整!'];
}
return json($resule);
}
public function export_supplier(){
$input=input('get.');
$sql=get_sql($input,[
'name'=>'full_name_py_link',
'number'=>'full_like',
'contacts'=>'full_like',
'tel'=>'full_like',
'add'=>'full_like',
'data'=>'full_like'
],'supplier') $sql=auth('supplier',$sql) $arr = Suppliers::where($sql)->order('id desc')->select() $formfield=get_formfield('supplier_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]]) push_log('导出供应商信息') export_excel('供应商列表',$excel);
}
public function import_supplier(Request $request){
$file=$request->file('file') if (empty($file)){
$resule=['state'=>'error','info'=>'传入数据不完整!'];
}else{
$nod=$file->validate (['ext'=>'xlsx'])->rule ('uniqid')->move (ROOT_PATH.'skin'.DS.'upload'.DS.'xlsx') if($nod){
$path=ROOT_PATH .'skin'.DS .'upload'.DS .'xlsx'.DS.$nod->getSaveName();
$arr=get_xlsx($path);
unset($arr[1]) $create_sql=[] foreach ($arr as $key=>$vo) {
$sql=[] $sql['name']=$vo['A'];
$sql['py']=zh2py($vo['A']) $sql['number']=$vo['B'];
$sql['contacts']=$vo['C'];
$sql['tel']=$vo['D'];
$sql['add']=$vo['E'];
$sql['bank']=$vo['F'];
$sql['account']=$vo['G'];
$sql['tax']=$vo['H'];
$sql['other']=$vo['I'];
$sql['email']=$vo['J'];
$sql['data']=$vo['K'];
$vali = $this->validate($sql,'supplier');
if($vali===true){
push_log('导入供应商信息[ '.$sql['name'].' ]') array_push($create_sql,$sql) }else{
return json(['state'=>'error','info'=>'模板文件第[ '.$key.' ]行'.$vali]);
}
}
$insert_count=db('supplier')->insertAll($create_sql);
$resule=['state'=>'success','info'=>$insert_count];
}else{
$resule=['state'=>'error','info'=>$file->getError()];
}
}
return json($resule);
}
}