|
@@ -5,7 +5,7 @@ namespace app\cxinv\controller;
|
|
|
use app\cxinv\model\Assoc;
|
|
|
use app\cxinv\model\ComonOrder;
|
|
|
use app\cxinv\model\QrdInfo;
|
|
|
-use app\cxinv\model\TradePool;
|
|
|
+use app\cxinv\model\TradeLib;use app\cxinv\model\TradePool;
|
|
|
use app\cxinv\model\TradeReturn;
|
|
|
use app\user\model\Business;
|
|
|
use think\App;
|
|
@@ -383,27 +383,58 @@ class Trade extends Base{
|
|
|
public function importTradeByArr(){
|
|
|
$data= $this->request->post("data",[],"trim");
|
|
|
if(!is_array($data)||empty($data)) return error("参数错误");
|
|
|
+ /**
|
|
|
+* 'palt_po' =>'varchar',//平台采购po
|
|
|
+ 'skuCode' =>'varchar',//泰E购sku
|
|
|
+ 'goodName' =>'varchar',//平台物料名称
|
|
|
+ 'goodNum' =>'varchar',//商品数量
|
|
|
+ 'platPrice' =>'decimal',//平台业务公司单价
|
|
|
+ 'plat_total' =>'decimal',//平台业务公司金额
|
|
|
+ 'tax' =>'varchar',//税率
|
|
|
+ 'cat_code' =>'varchar',//税收编码
|
|
|
+ 'cat_name' =>'varchar',//税收名称
|
|
|
+ 'comPrice' =>'decimal',//业务公司单价
|
|
|
+ 'com_total' =>'decimal',//业务公司总额
|
|
|
+ 'pcCode' =>'varchar',//批次号
|
|
|
+ */
|
|
|
$valid = Validate::rule([
|
|
|
"companyNo|收款方公司编号"=>"require|max:255",
|
|
|
+ "trade_type|汇款类型"=>"require|number|in:0,1",
|
|
|
"trade_in_account|收款账户"=>"require|max:255",
|
|
|
"tradeTime|交易时间"=>"require|date",
|
|
|
"trade_fee|交易金额"=>"require|float",
|
|
|
"trade_bank|交易银行"=>"require|max:255",
|
|
|
"trade_account|对方账号"=>"require|max:255",
|
|
|
"trade_out|交易方名称"=>"require|max:255",
|
|
|
+ "poCode|PO编号" =>"requireIf:trade_type,1|max:255",
|
|
|
+ "NdCode|ND编号"=>"requireIf:trade_type,1|max:255",
|
|
|
+ "palt_po|平台采购po"=>"requireIf:trade_type,1|max:255",
|
|
|
+ "skuCode|SKU"=>"requireIf:trade_type,1|max:255",
|
|
|
+ "goodName|商品名称"=>"requireIf:trade_type,1|max:255",
|
|
|
+ "goodNum|商品数量"=>"requireIf:trade_type,1|float",
|
|
|
+ "platPrice|平台单价"=>"requireIf:trade_type,1|float",
|
|
|
+ "plat_total|平台金额"=>"requireIf:trade_type,1|float",
|
|
|
+ "tax|税率"=>"requireIf:trade_type,1|max:255",
|
|
|
+ "cat_code|税收编码"=>"requireIf:trade_type,1|max:255",
|
|
|
+ "cat_name|税收名称"=>"requireIf:trade_type,1|max:255",
|
|
|
+ "comPrice|业务公司单价"=>"requireIf:trade_type,1|float",
|
|
|
+ "com_total|业务公司总额"=>"requireIf:trade_type,1|float",
|
|
|
]);
|
|
|
$companyArr= Business::whereIn("companyNo",array_column($data,'companyNo'))->column("company","companyNo");
|
|
|
$list=[];
|
|
|
+ $lib=[];
|
|
|
+ $pcCode= makeNo("PC");
|
|
|
foreach ($data as $key=>$value){
|
|
|
if(!$valid->check($value)) return error('第'.($key+1).'行'.$valid->getError());
|
|
|
if(!isset($companyArr[$value['companyNo']])) return error('第'.($key+1).'行收款方业务公司不存在');
|
|
|
$radStr= Str::random(3,3);
|
|
|
+ $tradNo= makeNo('S'.$radStr,str_pad($key+1,4,'0',STR_PAD_LEFT));
|
|
|
$list[]=[
|
|
|
- "tradNo"=>makeNo("S".$radStr,str_pad($key+1,4,'0',STR_PAD_LEFT)),
|
|
|
+ "tradNo"=>$tradNo,
|
|
|
"companyNo"=>$value['companyNo'],
|
|
|
"trade_in"=>$value['trade_in']??$companyArr[$value['companyNo']],
|
|
|
"trade_out"=>$value['trade_out'],
|
|
|
- "trade_type"=>0,
|
|
|
+ "trade_type"=>$value['trade_type']??0,
|
|
|
"total_fee"=>str_replace(',','',$value['trade_fee']),
|
|
|
"balance"=>str_replace(',','',$value['trade_fee']),
|
|
|
"trade_remark"=>$value['trade_remark']??"",
|
|
@@ -418,11 +449,35 @@ class Trade extends Base{
|
|
|
"apply_id"=>$this->uid,
|
|
|
"apply_name"=>$this->uname,
|
|
|
];
|
|
|
+ if($value['trade_type']==1){
|
|
|
+ $lib[]=[
|
|
|
+ "tradNo"=>$tradNo,
|
|
|
+ "palt_po"=>$value['palt_po'],
|
|
|
+ "skuCode"=>$value['skuCode'],
|
|
|
+ "goodName"=>$value['goodName'],
|
|
|
+ "goodNum"=>$value['goodNum'],
|
|
|
+ "platPrice"=>$value['platPrice'],
|
|
|
+ "plat_total"=>$value['plat_total'],
|
|
|
+ "tax"=>$value['tax'],
|
|
|
+ "cat_code"=>$value['cat_code'],
|
|
|
+ "cat_name"=>$value['cat_name'],
|
|
|
+ "comPrice"=>$value['comPrice'],
|
|
|
+ "com_total"=>$value['com_total'],
|
|
|
+ "pcCode"=>$pcCode,
|
|
|
+ ];
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
if(empty($list)) return error("导入数据不能为空");
|
|
|
- $num=$this->model->saveAll($list);
|
|
|
- if($num->isEmpty()) return error("资金流水导入失败");
|
|
|
+ $this->model->startTrans();
|
|
|
+ try{
|
|
|
+ $num=$this->model->saveAll($list);
|
|
|
+ if($num->isEmpty())throw new \Exception('资金流水导入失败');
|
|
|
+ if(!empty($lib)) (new TradeLib())->saveAll($lib);
|
|
|
+ }catch (\Exception $e){
|
|
|
+ $this->model->rollback();
|
|
|
+ return error($e->getMessage());
|
|
|
+ }
|
|
|
return success("资金导入成功");
|
|
|
}
|
|
|
|