|
@@ -3,10 +3,11 @@
|
|
|
|
|
|
namespace app\admin\controller;
|
|
|
|
|
|
-use think\App;
|
|
|
+use app\admin\model\OrderTag;use app\admin\model\Pay;use app\admin\model\QrdInfo;use app\admin\model\TagLog;use think\App;
|
|
|
use think\facade\Db;
|
|
|
|
|
|
class TagGood extends Base{
|
|
|
+ #public $novalidate=['*'];
|
|
|
public function __construct(App $app) {parent::__construct($app);}
|
|
|
//新建标签
|
|
|
public function create(){
|
|
@@ -149,14 +150,6 @@ class TagGood extends Base{
|
|
|
if($type==''){
|
|
|
return error_show(1004,"参数 type 不能为空");
|
|
|
}
|
|
|
-// if($this->post['relaComNo']!=""){
|
|
|
-// $companyNo = isset($this->post['relaComNo'])&& $this->post['relaComNo']!="" ? trim($this->post['relaComNo']) :"";
|
|
|
-// }else{
|
|
|
-// $companyNo = isset($this->post['companyNo'])&& $this->post['companyNo']!="" ? trim($this->post['companyNo']) :"";
|
|
|
-// }
|
|
|
-// if($companyNo==''){
|
|
|
-// return error_show(1004,"参数 companyNo 不能为空");
|
|
|
-// }
|
|
|
$tag =Db::name("order_tag")->where([['tag_name',"=",$tagName],['companyNo',"=",$taginfo['companyNo']],
|
|
|
['type',"=",$type], ["id","<>",$id],["is_del","=",0]])->find();
|
|
|
if($tag!=false){
|
|
@@ -249,6 +242,33 @@ class TagGood extends Base{
|
|
|
return error_show(1004,$e->getMessage());
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ public function checkTag(){
|
|
|
+ $param= $this->request->post(["logid"=>''],"post","trim");
|
|
|
+ $loginfo = TagLog::where("id",$param['logid'])->findOrEmpty();
|
|
|
+ if($loginfo->isEmpty())$this->error('未找到标签关联数据');
|
|
|
+ $tag = OrderTag::where("id",$loginfo->tag_id)->findOrEmpty();
|
|
|
+ if($tag->isEmpty())$this->error('未找到标签信息数据');
|
|
|
+ TagLog::startTrans();
|
|
|
+ $message="";
|
|
|
+ try{
|
|
|
+ if($tag['type']==1 || $tag['type']==2){
|
|
|
+ $message="对账单{$loginfo->code}{$tag->tag_name}";
|
|
|
+ $this->payReTag($tag['type'],$loginfo->code,$loginfo->tag_fee);
|
|
|
+ }
|
|
|
+ if($tag['type']==3|| $tag['type']==4){
|
|
|
+ $message="销售单{$loginfo->code}{$tag->tag_name}";
|
|
|
+ $this->qrdReTag($tag['type'],$loginfo->code,$loginfo->tag_fee);
|
|
|
+ }
|
|
|
+ $loginfo->status=0;
|
|
|
+ $loginfo->save();
|
|
|
+ }catch (\Exception $exception){
|
|
|
+ TagLog::rollback();
|
|
|
+ $this->error($exception->getMessage());
|
|
|
+ }
|
|
|
+ TagLog::commit();
|
|
|
+ $this->success("{$message}数据标签解除");
|
|
|
+ }
|
|
|
/**
|
|
|
* @param $tagId 标签类型 1 付款2回票
|
|
|
* @param $code 对账单编号
|
|
@@ -285,6 +305,34 @@ class TagGood extends Base{
|
|
|
$resulr= Db::name("pay")->where($pay)->update($update);
|
|
|
return $resulr? app_show(0,"标签添加成功"):error_show(1004,"标签添加失败");
|
|
|
}
|
|
|
+
|
|
|
+ /**解除标签
|
|
|
+ * @param $tagId 标签类型 1 付款2回票
|
|
|
+ * @param $code 对账单编号
|
|
|
+ * @param $total_fee 标签金额
|
|
|
+ * @return \think\response\Json|void
|
|
|
+ * @throws \think\db\exception\DbException
|
|
|
+ */
|
|
|
+ private function payReTag($tagId,$code,$total_fee){
|
|
|
+ $pay=Pay::where(['payNo'=>$code,'is_del'=>0])->findOrEmpty();
|
|
|
+ if($pay->isEmpty())throw new \Exception("未找到对账单数据");
|
|
|
+ if($tagId==1){
|
|
|
+ if($pay['pay_tag_fee']<$total_fee)throw new \Exception('对账单付款标签金额不足');
|
|
|
+ $pay->pay_tag_fee=$pay->pay_tag_fee-$total_fee;
|
|
|
+ $pay->wpay_fee=$pay->wpay_fee+$total_fee;
|
|
|
+ $pay->pay_status = $pay->wpay_fee==0 && $pay->pay_fee==0?3:($pay->apay_fee==0?1:2);
|
|
|
+ $pay->pay_tag=0;
|
|
|
+ }
|
|
|
+ if($tagId==2){
|
|
|
+ if($pay['inv_tag_fee']<$total_fee)throw new \Exception('对账单回票标签金额不足');
|
|
|
+ $pay->inv_tag_fee=$pay->inv_tag_fee-$total_fee;
|
|
|
+ $pay->winv_fee=$pay->winv_fee+$total_fee;
|
|
|
+ $pay->inv_status = $pay->winv_fee==0 && $pay->inv_fee==0?3:($pay->ainv_fee==0?1:2);
|
|
|
+ $pay->inv_tag=0;
|
|
|
+ }
|
|
|
+ $resulr= $pay->save();
|
|
|
+ if($resulr==false)throw new \Exception("对账单更新失败");
|
|
|
+ }
|
|
|
/**
|
|
|
* @param $tagId 标签类型 3 回款4开票
|
|
|
* @param $code 销售单编号
|
|
@@ -310,7 +358,7 @@ class TagGood extends Base{
|
|
|
}
|
|
|
if($tagId==4){
|
|
|
if($qrd['winv_fee']+$qrd['inv_tag_fee']<$total_fee){
|
|
|
- return error_show(1004,"对账单未付金额不足");
|
|
|
+ return error_show(1004,"对账单未开票金额不足");
|
|
|
}
|
|
|
$update['winv_fee']=$qrd['winv_fee']+$qrd['inv_tag_fee']-$total_fee;
|
|
|
$status = $update['winv_fee']==0 &&$qrd['inv_fee']==0 ? 3:($qrd['ainv_fee']==0?1:2);
|
|
@@ -321,4 +369,32 @@ class TagGood extends Base{
|
|
|
$resulr= Db::name("qrd_info")->where($qrd)->update($update);
|
|
|
return $resulr? app_show(0,"标签添加成功"):error_show(1004,"标签添加失败");
|
|
|
}
|
|
|
+
|
|
|
+ /** 解除标签销售单
|
|
|
+ * @param $tagId 标签类型 3 回款4开票
|
|
|
+ * @param $code 销售单编号
|
|
|
+ * @param $total_fee 标签金额
|
|
|
+ * @return \think\response\Json|void
|
|
|
+ * @throws \think\db\exception\DbException
|
|
|
+ */
|
|
|
+ private function qrdReTag($tagId,$code,$total_fee){
|
|
|
+ $qrd=QrdInfo::where(['sequenceNo'=>$code,'is_del'=>0])->findOrEmpty();
|
|
|
+ if($qrd->isEmpty())throw new \Exception('未找到销售单数据');
|
|
|
+ if($tagId==3){
|
|
|
+ if($qrd->pay_tag_fee<$total_fee)throw new \Exception('销售单回款标签金额不足');
|
|
|
+ $qrd->pay_tag_fee=$qrd->pay_tag_fee-$total_fee;
|
|
|
+ $qrd->wpay_fee=$qrd->wpay_fee+$total_fee;
|
|
|
+ $qrd->pay_status = $qrd->wpay_fee==0 && $qrd->pay_fee==0?3:($qrd->apay_fee==0?1:2);
|
|
|
+ $qrd->pay_tag=0;
|
|
|
+ }
|
|
|
+ if($tagId==4){
|
|
|
+ if($qrd->pay_tag_fee<$total_fee)throw new \Exception('销售单开票标签金额不足');
|
|
|
+ $qrd->inv_tag_fee=$qrd->inv_tag_fee-$total_fee;
|
|
|
+ $qrd->winv_fee=$qrd->winv_fee+$total_fee;
|
|
|
+ $qrd->inv_status = $qrd->winv_fee==0 && $qrd->inv_fee==0?3:($qrd->ainv_fee==0?1:2);
|
|
|
+ $qrd->inv_tag=0;
|
|
|
+ }
|
|
|
+ $resulr= $qrd->save();
|
|
|
+ if($resulr==false)throw new \Exception('销售单更新失败');
|
|
|
+ }
|
|
|
}
|