Przeglądaj źródła

前端开票申请单选择开票行数据中,筛选掉已经提交开票申请的订单行数据

沈静伟 4 lat temu
rodzic
commit
62deab88ca

+ 8 - 2
src/rest/openapi/restcontroller/wechatapp/tinvoiceapply/SQL/开票订单行选择查询.sql

@@ -1,11 +1,17 @@
 select
 t1.fsonum,t1.saorderdetailid,sa.saorderid,t1.frownum,t1.fitemno,t1.fitemname,t1.fmodel,t1.fspec,t1.frateamount,t1.frateprice,t1.fwriteoffamount
-,t2.freceivedamount,tp.fprojectname,sdate.closedate1,(isnull(t2.freceivedamount,0)-isnull(t1.finvoiceamount,0)) as fcaninvoiceamount from saorderdetail t1
+,t2.freceivedamount,tp.fprojectname,sdate.closedate1,(isnull(t2.freceivedamount,0)-isnull(t1.finvoiceamount,0)-isnull(t3.finvoiceamount,0)) as fcaninvoiceamount from saorderdetail t1
 inner join saorder_receivedview t2 on t1.siteid=t2.siteid and t1.saorderdetailid=t2.saorderdetailid and isnull(t2.freceivedamount,0)>isnull(t1.finvoiceamount,0)
 inner join saorder sa on t1.fparentid = sa.saorderid and sa.fpayagentnum=$fagentnum$ and sa.fstatus in('ÉóºË','¹Ø±Õ')
 left join tproject tp on sa.fprojectnum = tp.fprojectnum and sa.siteid=tp.siteid
 left join sainvoice_closedate sdate on sdate.fsourceid = t1.saorderdetailid
+left join (
+    select t1.saorderdetailid,sum(t2.finvoiceamount)finvoiceamount from saorderdetail t1
+    inner join tinvoiceapplyorder t2 on  t1.siteid=t2.siteid and t1.saorderdetailid=t2.saorderdetailid
+    inner join tinvoiceapply t3 on t2.siteid=t3.siteid and t2.tinvoiceapplyid=t3.tinvoiceapplyid
+    where t3.fstatus='Ìá½»' and t1.siteid=$siteid$ group by t1.saorderdetailid
+) t3 on t1.saorderdetailid=t3.saorderdetailid
 where t1.siteid=$siteid$
 and not exists(
     select *from tinvoiceapplyorder where siteid=$siteid$ and tinvoiceapplyid=$tinvoiceapplyid$ and saorderdetailid=t1.saorderdetailid
-) and $where$
+)and $where$ and (isnull(t2.freceivedamount,0)-isnull(t1.finvoiceamount,0)-isnull(t3.finvoiceamount,0))>0

+ 8 - 2
src/rest/openapi/restcontroller/wechatapp/tinvoiceapply/SQL/开票订单行选择查询_审核订单.sql

@@ -1,12 +1,18 @@
 select
 t1.fsonum,t1.saorderdetailid,sa.saorderid,t1.frownum,t1.fitemno,t1.fitemname,t1.fmodel,t1.fspec,t1.frateamount,t1.frateprice,t1.fwriteoffamount
-,t2.freceivedamount,tp.fprojectname,sdate.closedate1,(isnull(t1.frateamount,0)-isnull(t1.finvoiceamount,0)) as fcaninvoiceamount from saorderdetail t1
+,t2.freceivedamount,tp.fprojectname,sdate.closedate1,(isnull(t1.frateamount,0)-isnull(t1.finvoiceamount,0)-isnull(t3.finvoiceamount,0)) as fcaninvoiceamount from saorderdetail t1
 left join saorder_receivedview t2 on t1.siteid=t2.siteid and t1.saorderdetailid=t2.saorderdetailid
 inner join tagents t3 on t1.siteid=t3.siteid and t3.fagentnum=$fagentnum$ and fcheckordermakeinv=1
 inner join saorder sa on t1.fparentid = sa.saorderid and sa.fpayagentnum=$fagentnum$ and sa.fstatus in('ÉóºË','¹Ø±Õ')
 left join tproject tp on sa.fprojectnum = tp.fprojectnum and sa.siteid=tp.siteid
 left join sainvoice_closedate sdate on sdate.fsourceid = t1.saorderdetailid
+left join (
+    select t1.saorderdetailid,sum(t2.finvoiceamount)finvoiceamount from saorderdetail t1
+    inner join tinvoiceapplyorder t2 on  t1.siteid=t2.siteid and t1.saorderdetailid=t2.saorderdetailid
+    inner join tinvoiceapply t3 on t2.siteid=t3.siteid and t2.tinvoiceapplyid=t3.tinvoiceapplyid
+    where t3.fstatus='Ìá½»' and t1.siteid=$siteid$ group by t1.saorderdetailid
+) t3 on t1.saorderdetailid=t3.saorderdetailid
 where t1.siteid=$siteid$ and isnull(t1.frateamount,0)>isnull(t1.finvoiceamount,0)
 and not exists(
     select *from tinvoiceapplyorder where siteid=$siteid$ and tinvoiceapplyid=$tinvoiceapplyid$ and saorderdetailid=t1.saorderdetailid
-) and $where$
+) and $where$ and (isnull(t2.freceivedamount,0)-isnull(t1.finvoiceamount,0)-isnull(t3.finvoiceamount,0))>0