• 财务报表的一些方法


    alter proc DOA_FAbinbalance(@hid int,@mode int)
    as
    set nocount on
    begin
    /******************************************************************************************************************
    --@mode = 1 采购入库财务审核
    --@mode = 2 销售出库财务审核
    --@mode = 3 采购退货财务审核
    --@mode = 4 销售退货财务审核
    --@mode = 5 采购付款
    --@mode = 6 销售收款
    --@mode = 7 采购退货收款
    --@mode = 8 销售退货付款

    财务过账: thisbalance 即时帐
    balancelog 明细账
    ******************************************************************************************************************/
    if @mode = 1 --采购入库财务审核
    begin
    update thisbalance set balance=isnull(a.balance,0)+isnull(b.sumtotalmoney,0),changedate=getdate() --应付账
    from thisbalance a inner join DWD_54 b on a.companyid=b.companyid and a.obj1=b.vndcode
    where a.tabtype='应付账款' and acctname='应付账款RMB' and accttype='负债类' and b.hid=@hid
    if @@rowcount = 0
    begin
    insert into thisbalance(tabtype,companyid,obj1,obj1name,obj2,obj2name,obj3,obj3name,Acctname,currency,balance,changedate,accttype)
    select '应付账款',companyid,vndcode,vndname,'','','','','应付账款RMB','RMB',sumtotalmoney,getdate(),'负债类'
    from DWD_54 with(nolock)
    where hid=@hid
    end

    update thisbalance set balance=isnull(a.balance,0)+isnull(b.sumtotalmoney,0),changedate=getdate() --资金账
    from thisbalance a inner join DWD_54 b on a.companyid=b.companyid
    where a.tabtype='库存商品' and acctname='库存商品' and accttype='资产类' and b.hid=@hid
    if @@rowcount = 0
    begin
    insert into thisbalance(tabtype,companyid,obj1,obj1name,obj2,obj2name,obj3,obj3name,Acctname,currency,balance,changedate,accttype)
    select '库存商品',companyid,'','','','','','','库存商品','RMB',sumtotalmoney,getdate(),'资产类'
    from DWD_54 with(nolock)
    where hid=@hid
    end

    /*****************************************************明细账*****************************************************/
    insert into balancelog(tabtype,inserttime,companyid,Acctname,obj1,obj1name,dcflag,currency,
    exchange_rate,debit_totalmoney,fname,doctype,billno,docdate,periodid,memo,docword,fid,sid,uid,hid)
    select '库存商品',GETDATE(),companyid,'库存商品','','','借','RMB',1,sumtotalmoney,'采购入库',doctype,billno,docdate,
    convert(varchar(7),docdate,120),memo,'转',fid,sid,duid,hid
    from DWD_54 with(nolock)
    where hid=@hid --------贷

    insert into balancelog(tabtype,inserttime,companyid,Acctname,obj1,obj1name,dcflag,currency,
    exchange_rate,credit_totalmoney,fname,doctype,billno,docdate,periodid,memo,docword,fid,sid,uid,hid)
    select '应付账款',GETDATE(),companyid,'应付账款RMB',vndcode,vndname,'贷','RMB',1,sumtotalmoney,'采购入库',doctype,billno,docdate,
    convert(varchar(7),docdate,120),memo,'转',fid,sid,duid,hid
    from DWD_54 with(nolock)
    where hid=@hid --------借
    /****************************************************************************************************************/
    update DWD_3 set shflag=1
    from DWD_3 a inner join DWD_54 b on a.hid=b.refcode
    where b.hid=@hid
    end
    if @mode = 2 --销售出库财务审核
    begin
    update thisbalance set balance=isnull(a.balance,0)+isnull(b.sumtotalmoney,0),changedate=getdate() --资产账
    from thisbalance a inner join DWD_57 b on a.companyid=b.companyid and a.obj1=b.vndcode
    where a.tabtype='业务收入' and acctname='主营业务收入' and accttype='损益类' and b.hid=@hid
    if @@rowcount = 0
    begin
    insert into thisbalance(tabtype,companyid,obj1,obj1name,obj2,obj2name,obj3,obj3name,Acctname,currency,balance,changedate,accttype)
    select '业务收入',companyid,vndcode,vndname,'','','','','主营业务收入','RMB',sumtotalmoney,getdate(),'损益类'
    from DWD_57 with(nolock)
    where hid=@hid
    end

    update thisbalance set balance=isnull(a.balance,0)+isnull(b.sumtotalmoney,0),changedate=getdate() --应收账
    from thisbalance a inner join DWD_57 b on a.companyid=b.companyid and a.obj1=b.vndcode
    where a.tabtype='应收账款' and acctname='应收账款RMB' and accttype='资产类' and b.hid=@hid
    if @@rowcount = 0
    begin
    insert into thisbalance(tabtype,companyid,obj1,obj1name,obj2,obj2name,obj3,obj3name,Acctname,currency,balance,changedate,accttype)
    select '应收账款',companyid,vndcode,vndname,'','','','','应收账款RMB','RMB',sumtotalmoney,getdate(),'资产类'
    from DWD_57 with(nolock)
    where hid=@hid
    end
    /*****************************************************明细账*****************************************************/
    insert into balancelog(tabtype,inserttime,companyid,Acctname,obj1,obj1name,dcflag,currency,
    exchange_rate,debit_totalmoney,fname,doctype,billno,docdate,periodid,memo,docword,fid,sid,uid,hid)
    select '应收账款',GETDATE(),companyid,'应收账款RMB',vndcode,vndname,'借','RMB',1,sumtotalmoney,'销售出库',doctype,billno,docdate,
    convert(varchar(7),docdate,120),memo,'转',fid,sid,duid,hid
    from DWD_57 with(nolock)
    where hid=@hid --------贷

    insert into balancelog(tabtype,inserttime,companyid,Acctname,obj1,obj1name,dcflag,currency,
    exchange_rate,credit_totalmoney,fname,doctype,billno,docdate,periodid,memo,docword,fid,sid,uid,hid)
    select '业务收入',GETDATE(),companyid,'主营业务收入',vndcode,vndname,'贷','RMB',1,sumtotalmoney,'销售出库',doctype,billno,docdate,
    convert(varchar(7),docdate,120),memo,'转',fid,sid,duid,hid
    from DWD_57 with(nolock)
    where hid=@hid --------借
    /****************************************************************************************************************/
    update dwd_36 set shflag=1
    from dwd_36 a inner join DWD_57 b on a.hid=b.refcode
    where b.hid=@hid
    end
    if @mode = 3 --采购退货财务审核
    begin
    update thisbalance set balance=isnull(a.balance,0)-isnull(b.sumtotalmoney,0),changedate=getdate() --应付账
    from thisbalance a inner join DWD_57 b on a.companyid=b.companyid and a.obj1=b.vndcode
    where a.tabtype='应付账款' and acctname='应付账款RMB' and accttype='负债类' and b.hid=@hid
    if @@rowcount = 0
    begin
    insert into thisbalance(tabtype,companyid,obj1,obj1name,obj2,obj2name,obj3,obj3name,Acctname,currency,balance,changedate,accttype)
    select '应付账款',companyid,vndcode,vndname,'','','','','应付账款RMB','RMB',-sumtotalmoney,getdate(),'负债类'
    from DWD_57 with(nolock)
    where hid=@hid
    end

    update thisbalance set balance=isnull(a.balance,0)-isnull(b.sumtotalmoney,0),changedate=getdate() --资金账
    from thisbalance a inner join DWD_57 b on a.companyid=b.companyid
    where a.tabtype='库存商品' and acctname='库存商品' and accttype='资产类' and b.hid=@hid
    if @@rowcount = 0 begin
    insert into thisbalance(tabtype,companyid,obj1,obj1name,obj2,obj2name,obj3,obj3name,Acctname,currency,balance,changedate,accttype)
    select '库存商品',companyid,'','','','','','','库存商品','RMB',-sumtotalmoney,getdate(),'资产类'
    from DWD_57 with(nolock)
    where hid=@hid
    end

    /*****************************************************明细账*****************************************************/
    insert into balancelog(tabtype,inserttime,companyid,Acctname,obj1,obj1name,dcflag,currency,
    exchange_rate,debit_totalmoney,fname,doctype,billno,docdate,periodid,memo,docword,fid,sid,uid,hid)
    select '库存商品',GETDATE(),companyid,'库存商品','','','借','RMB',1,-sumtotalmoney,'采购退货',doctype,billno,docdate,
    convert(varchar(7),docdate,120),memo,'转',fid,sid,duid,hid
    from DWD_57 with(nolock)
    where hid=@hid --------贷

    insert into balancelog(tabtype,inserttime,companyid,Acctname,obj1,obj1name,dcflag,currency,
    exchange_rate,credit_totalmoney,fname,doctype,billno,docdate,periodid,memo,docword,fid,sid,uid,hid)
    select '应付账款',GETDATE(),companyid,'应付账款RMB',vndcode,vndname,'贷','RMB',1,-sumtotalmoney,'采购退货',doctype,billno,docdate,
    convert(varchar(7),docdate,120),memo,'转',fid,sid,duid,hid
    from DWD_57 with(nolock)
    where hid=@hid --------借
    /****************************************************************************************************************/
    update dwd_29 set shflag=1
    from dwd_29 a inner join DWD_57 b on a.hid=b.refcode
    where b.hid=@hid
    end
    if @mode = 4 --销售退货财务审核
    begin
    update thisbalance set balance=isnull(a.balance,0)-isnull(b.sumtotalmoney,0),changedate=getdate() --资产账
    from thisbalance a inner join DWD_54 b on a.companyid=b.companyid and a.obj1=b.vndcode
    where a.tabtype='业务收入' and acctname='主营业务收入' and accttype='损益类' and b.hid=@hid
    if @@rowcount = 0
    begin
    insert into thisbalance(tabtype,companyid,obj1,obj1name,obj2,obj2name,obj3,obj3name,Acctname,currency,balance,changedate,accttype)
    select '业务收入',companyid,vndcode,vndname,'','','','','主营业务收入','RMB',-sumtotalmoney,getdate(),'损益类'
    from DWD_54 with(nolock)
    where hid=@hid
    end

    update thisbalance set balance=isnull(a.balance,0)-isnull(b.sumtotalmoney,0),changedate=getdate() --应收账
    from thisbalance a inner join DWD_54 b on a.companyid=b.companyid and a.obj1=b.vndcode
    where a.tabtype='应收账款' and acctname='应收账款RMB' and accttype='资产类' and b.hid=@hid
    if @@rowcount = 0
    begin
    insert into thisbalance(tabtype,companyid,obj1,obj1name,obj2,obj2name,obj3,obj3name,Acctname,currency,balance,changedate,accttype)
    select '应收账款',companyid,vndcode,vndname,'','','','','应收账款RMB','RMB',-sumtotalmoney,getdate(),'资产类'
    from DWD_54 with(nolock)
    where hid=@hid
    end
    /*****************************************************明细账*****************************************************/
    insert into balancelog(tabtype,inserttime,companyid,Acctname,obj1,obj1name,dcflag,currency,
    exchange_rate,debit_totalmoney,fname,doctype,billno,docdate,periodid,memo,docword,fid,sid,uid,hid)
    select '应收账款',GETDATE(),companyid,'应收账款RMB',vndcode,vndname,'借','RMB',1,-sumtotalmoney,'销售退货',doctype,billno,docdate,
    convert(varchar(7),docdate,120),memo,'转',fid,sid,duid,hid
    from DWD_54 with(nolock)
    where hid=@hid --------贷

    insert into balancelog(tabtype,inserttime,companyid,Acctname,obj1,obj1name,dcflag,currency,
    exchange_rate,credit_totalmoney,fname,doctype,billno,docdate,periodid,memo,docword,fid,sid,uid,hid)
    select '业务收入',GETDATE(),companyid,'主营业务收入',vndcode,vndname,'贷','RMB',1,-sumtotalmoney,'销售退货',doctype,billno,docdate,
    convert(varchar(7),docdate,120),memo,'转',fid,sid,duid,hid
    from DWD_54 with(nolock)
    where hid=@hid --------借
    /****************************************************************************************************************/
    update dwd_27 set shflag=1
    from dwd_27 a inner join DWD_54 b on a.hid=b.refcode
    where b.hid=@hid
    end

    if @mode =5 --采购付款
    begin
    update thisbalance set balance=isnull(a.balance,0)-isnull(b.summoney,0),changedate=getdate() --应付账
    from thisbalance a inner join DWD_56 b on a.companyid=b.companyid and a.obj1=b.cardcode
    where a.tabtype='应付账款' and acctname='应付账款RMB' and accttype='负债类' and b.hid=2
    if @@rowcount = 0
    begin
    insert into thisbalance(tabtype,companyid,obj1,obj1name,obj2,obj2name,obj3,obj3name,Acctname,currency,balance,changedate,accttype)
    select '应付账款',companyid,cardcode,cardname,'','','','','应付账款RMB','RMB',-summoney,getdate(),'负债类'
    from DWD_56 with(nolock)
    where hid=@hid
    end

    update thisbalance set balance=isnull(a.balance,0)-isnull(b.summoney,0),changedate=getdate() --资金账
    from thisbalance a inner join DWD_56 b on a.companyid=b.companyid
    where a.tabtype='资金' and acctname='现金' and accttype='资产类' and b.hid=2
    if @@rowcount = 0
    begin
    insert into thisbalance(tabtype,companyid,obj1,obj1name,obj2,obj2name,obj3,obj3name,Acctname,currency,balance,changedate,accttype)
    select '资金',companyid,'','','','','','','现金','RMB',-summoney,getdate(),'资产类'
    from DWD_56 with(nolock) where hid=@hid
    end

    /*****************************************************明细账*****************************************************/
    insert into balancelog(tabtype,inserttime,companyid,Acctname,obj1,obj1name,dcflag,currency,
    exchange_rate,credit_totalmoney,fname,doctype,billno,docdate,periodid,memo,docword,fid,sid,uid,hid)
    select '资金',GETDATE(),companyid,'现金','','','贷','RMB',1,summoney,'付款单',doctype+fktype,billno,docdate,
    convert(varchar(7),docdate,120),memo,'转',fid,sid,duid,hid
    from DWD_56 with(nolock)
    where hid=@hid --------贷

    insert into balancelog(tabtype,inserttime,companyid,Acctname,obj1,obj1name,dcflag,currency,
    exchange_rate,debit_totalmoney,fname,doctype,billno,docdate,periodid,memo,docword,fid,sid,uid,hid)
    select '应付账款',GETDATE(),companyid,'应付账款RMB',cardcode,cardname,'借','RMB',1,summoney,'付款单',doctype+fktype,billno,docdate,
    convert(varchar(7),docdate,120),memo,'转',fid,sid,duid,hid
    from DWD_56 with(nolock)
    where hid=@hid --------借
    /****************************************************************************************************************/
    update DWD_8 set kd_fkze=isnull(a.kd_fkze,0)+b.summoney
    from DWD_8 a inner join DWD_56 b on a.billNo=b.refhid
    where b.hid=@hid
    end
    ---------------------------------------------------------------------------------------------------------------------------------------------------------
    if @mode =6 --销售收款
    begin
    update thisbalance set balance=isnull(a.balance,0)-isnull(b.summoney,0),changedate=getdate() --应收账
    from thisbalance a inner join DWD_59 b on a.companyid=b.companyid and a.obj1=b.cardcode
    where a.tabtype='应收账款' and acctname='应收账款RMB' and accttype='资产类' and b.hid=@hid
    if @@rowcount = 0
    begin
    insert into thisbalance(tabtype,companyid,obj1,obj1name,obj2,obj2name,obj3,obj3name,Acctname,currency,balance,changedate,accttype)
    select '应收账款',companyid,cardcode,cardname,'','','','','应收账款RMB','RMB',-summoney,getdate(),'资产类'
    from DWD_59 with(nolock)
    where hid=@hid
    end

    update thisbalance set balance=isnull(a.balance,0)+isnull(b.summoney,0),changedate=getdate() --资金账
    from thisbalance a inner join DWD_59 b on a.companyid=b.companyid
    where a.tabtype='资金' and acctname='现金' and accttype='资产类' and b.hid=@hid
    if @@rowcount = 0
    begin
    insert into thisbalance(tabtype,companyid,obj1,obj1name,obj2,obj2name,obj3,obj3name,Acctname,currency,balance,changedate,accttype)
    select '资金',companyid,'','','','','','','现金','RMB',summoney,getdate(),'资产类'
    from DWD_59 with(nolock)
    where hid=@hid
    end

    /*****************************************************明细账*****************************************************/
    insert into balancelog(tabtype,inserttime,companyid,Acctname,obj1,obj1name,dcflag,currency,
    exchange_rate,debit_totalmoney,fname,doctype,billno,docdate,periodid,memo,docword,fid,sid,uid,hid)
    select '资金',GETDATE(),companyid,'现金','','','借','RMB',1,summoney,'收款单',doctype+sktype,billno,docdate,
    convert(varchar(7),docdate,120),memo,'转',fid,sid,duid,hid
    from DWD_59 with(nolock)
    where hid=@hid --------借

    insert into balancelog(tabtype,inserttime,companyid,Acctname,obj1,obj1name,dcflag,currency,
    exchange_rate,credit_totalmoney,fname,doctype,billno,docdate,periodid,memo,docword,fid,sid,uid,hid)
    select '应收账款',GETDATE(),companyid,'应收账款RMB',cardcode,cardname,'贷','RMB',1,summoney,'收款单',doctype+sktype,billno,docdate,
    convert(varchar(7),docdate,120),memo,'转',fid,sid,duid,hid
    from DWD_59 with(nolock)
    where hid=@hid --------贷
    /****************************************************************************************************************/
    update DWD_5 set yfmoney=isnull(a.yfmoney,0)+b.summoney
    from DWD_5 a inner join DWD_59 b on a.billNo=b.refhid
    where b.hid=@hid
    end
    -----------------------------------------------------------------------------------------------------------------------------------------
    if @mode =7 --采购退货收款
    begin
    update thisbalance set balance=isnull(a.balance,0)+isnull(b.summoney,0),changedate=getdate() --应付账
    from thisbalance a inner join DWD_59 b on a.companyid=b.companyid and a.obj1=b.cardcode
    where a.tabtype='应付账款' and acctname='应付账款RMB' and accttype='负债类' and b.hid=@hid
    if @@rowcount = 0
    begin
    insert into thisbalance(tabtype,companyid,obj1,obj1name,obj2,obj2name,obj3,obj3name,Acctname,currency,balance,changedate,accttype)
    select '应付账款',companyid,cardcode,cardname,'','','','','应付账款RMB','RMB',-summoney,getdate(),'负债类'
    from DWD_59 with(nolock)
    where hid=@hid
    end

    update thisbalance set balance=isnull(a.balance,0)+isnull(b.summoney,0),changedate=getdate() --资金账
    from thisbalance a inner join DWD_59 b on a.companyid=b.companyid
    where a.tabtype='资金' and acctname='现金' and accttype='资产类' and b.hid=@hid
    if @@rowcount = 0
    begin
    insert into thisbalance(tabtype,companyid,obj1,obj1name,obj2,obj2name,obj3,obj3name,Acctname,currency,balance,changedate,accttype)
    select '资金',companyid,'','','','','','','现金','RMB',summoney,getdate(),'资产类'
    from DWD_59 with(nolock)
    where hid=@hid
    end

    /*****************************************************明细账*****************************************************/
    insert into balancelog(tabtype,inserttime,companyid,Acctname,obj1,obj1name,dcflag,currency,
    exchange_rate,credit_totalmoney,fname,doctype,billno,docdate,periodid,memo,docword,fid,sid,uid,hid)
    select '资金',GETDATE(),companyid,'现金','','','贷','RMB',1,-summoney,'收款单',doctype+sktype,billno,docdate,
    convert(varchar(7),docdate,120),memo,'转',fid,sid,duid,hid
    from DWD_59 with(nolock)
    where hid=@hid --------贷

    insert into balancelog(tabtype,inserttime,companyid,Acctname,obj1,obj1name,dcflag,currency,
    exchange_rate,debit_totalmoney,fname,doctype,billno,docdate,periodid,memo,docword,fid,sid,uid,hid)
    select '应付账款',GETDATE(),companyid,'应付账款RMB',cardcode,cardname,'借','RMB',1,-summoney,'收款单',doctype+sktype,billno,docdate,
    convert(varchar(7),docdate,120),memo,'转',fid,sid,duid,hid
    from DWD_59 with(nolock)
    where hid=@hid --------借
    /****************************************************************************************************************/
    update dwd_29 set kd_tkze=isnull(a.kd_tkze,0)+b.summoney
    from dwd_29 a inner join DWD_59 b on a.billNo=b.refhid
    where b.hid=@hid
    end
    ---------------------------------------------------------------------------------------------------------------------------------------------------------
    if @mode =8 --销售退货付款
    begin
    update thisbalance set balance=isnull(a.balance,0)+isnull(b.summoney,0),changedate=getdate() --应收账
    from thisbalance a inner join DWD_56 b on a.companyid=b.companyid and a.obj1=b.cardcode
    where a.tabtype='应收账款' and acctname='应收账款RMB' and accttype='资产类' and b.hid=@hid
    if @@rowcount = 0
    begin
    insert into thisbalance(tabtype,companyid,obj1,obj1name,obj2,obj2name,obj3,obj3name,Acctname,currency,balance,changedate,accttype)
    select '应收账款',companyid,cardcode,cardname,'','','','','应收账款RMB','RMB',summoney,getdate(),'资产类'
    from DWD_56 with(nolock)
    where hid=@hid
    end

    update thisbalance set balance=isnull(a.balance,0)-isnull(b.summoney,0),changedate=getdate() --资金账
    from thisbalance a inner join DWD_56 b on a.companyid=b.companyid
    where a.tabtype='资金' and acctname='现金' and accttype='资产类' and b.hid=@hid
    if @@rowcount = 0
    begin
    insert into thisbalance(tabtype,companyid,obj1,obj1name,obj2,obj2name,obj3,obj3name,Acctname,currency,balance,changedate,accttype)
    select '资金',companyid,'','','','','','','现金','RMB',-summoney,getdate(),'资产类'
    from DWD_56 with(nolock)
    where hid=@hid
    end

    /*****************************************************明细账*****************************************************/
    insert into balancelog(tabtype,inserttime,companyid,Acctname,obj1,obj1name,dcflag,currency,
    exchange_rate,debit_totalmoney,fname,doctype,billno,docdate,periodid,memo,docword,fid,sid,uid,hid)
    select '资金',GETDATE(),companyid,'现金','','','借','RMB',1,-summoney,'付款单',doctype+fktype,billno,docdate,
    convert(varchar(7),docdate,120),memo,'转',fid,sid,duid,hid
    from DWD_56 with(nolock)
    where hid=@hid --------借

    insert into balancelog(tabtype,inserttime,companyid,Acctname,obj1,obj1name,dcflag,currency,
    exchange_rate,credit_totalmoney,fname,doctype,billno,docdate,periodid,memo,docword,fid,sid,uid,hid)
    select '应收账款',GETDATE(),companyid,'应收账款RMB',cardcode,cardname,'贷','RMB',1,-summoney,'付款单',doctype+fktype,billno,docdate,
    convert(varchar(7),docdate,120),memo,'转',fid,sid,duid,hid
    from DWD_56 with(nolock)
    where hid=@hid --------贷
    /****************************************************************************************************************/
    update dwd_27 set kd_tkze=isnull(a.kd_tkze,0)+b.summoney
    from dwd_27 a inner join DWD_56 b on a.billNo=b.refhid
    where b.hid=@hid
    end
    -----------------------------------------------------------------------------------------------------------------------------------------
    end

    每天一进步、一积累,创造自我价值,体现人生逼格,你是自己的赢家!
  • 相关阅读:
    51nod 1565模糊搜索(FFT)
    51nod 1851俄罗斯方块(trick)
    可持久化线段树(主席树)模板
    BZOJ2191:Splite
    BZOJ4197:[NOI2015]寿司晚宴
    BZOJ3198:[SDOI2013]SPRING
    BZOJ1500:[NOI2005]维修数列
    BZOJ3527:[ZJOI]力
    BZOJ3160:万径人踪灭
    CODE[VS]1372:DNA
  • 原文地址:https://www.cnblogs.com/chlf/p/4154663.html
Copyright © 2020-2023  润新知