• 单价变更时采购单中单价为0的自动校正


    --@FPrice为未税单价

    CREATE TRIGGER poorderPriceUpdate ON t_SupplyEntry

    FOR  UPDATE

    AS

    BEGIN

      DECLARE @FSupID INT,

        @FItemID INT,

        @FUsed INT,

        @FPrice DECIMAL(28,10),

        @FDiscount DECIMAL(28,10),

        @FDisableDate DATETIME,

        @FQuoteTime DATETIME

      SELECT  @FUsed = FUsed,@FSupID = FSupID,@FItemID = FItemID,@FPrice = FPrice,

              @FDiscount = FDiscount,@FDisableDate = FDisableDate,

              @FQuoteTime = FQuoteTime

      FROM    Inserted

      IF  UPDATE(FUsed)  AND @FUsed = 1 AND @FQuoteTime <= GETDATE() AND @FDisableDate > GETDATE()

      BEGIN

        --select a1.fqty,a1.fcommitQty,a1.FStockQty,  --订货数量,到货数量,入库数量

        --a1.fcess,  --税率

        --a1.fprice,a1.fauxprice,a1.famount,--未税单价,辅助单价,未税金额

        --a1.fauxtaxprice,a1.fallamount,a1.ftaxamount, --含税单价, 价税合计,税额

        --a1.fauxpricediscount,a1.fpricediscount,a1.ftaxprice,  --实际含税单价, 含税单价,含税单价

        --a1.FEntrySelfP0247,a1.FAmtDiscount  --含税单价,折扣额

        --from poorderentry a1

        --left join poorder b1 on a1.finterid=b1.finterid

        --where b1.fbillno='0911M0533'

        UPDATE  a1

        SET     a1.FPrice = @FPrice,a1.FAuxPrice = @FPrice,

                a1.FAmount = @FPrice * a1.FQty,

                a1.FAuxTaxPrice = @FPrice * ( 1 + a1.FCess / 100 ),

                a1.FAllamount = @FPrice * ( 1 + a1.FCess / 100 ) * a1.FQty,

                a1.FTaxAmount = @FPrice * a1.FCess / 100 * a1.FQty,

                a1.FAuxPriceDiscount = @FPrice * ( 1 + a1.FCess / 100 ) * ( 1 - @FDiscount / 100 ),

                a1.FPriceDiscount = @FPrice * ( 1 + a1.FCess / 100 ) * ( 1 - @FDiscount / 100 ),

                a1.FTaxPrice = @FPrice * ( 1 + a1.FCess / 100 ),

                a1.FAmtDiscount = @FPrice * a1.FQty * @FDiscount / 100

        FROM    POOrderEntry a1,

                POOrder b1

        WHERE   a1.FPrice = 0 AND b1.FSupplyID = @FSupID AND a1.FItemID = @FItemID AND b1.FInterID = a1.FInterID

      END

    END

     

    @FPrice 为含税单价

    --------------------------------------------------

    CREATE TRIGGER poorderPriceUpdate ON t_SupplyEntry

    FOR  UPDATE

    AS

    BEGIN

      DECLARE @FSupID INT,

        @FItemID INT,

        @FUsed INT,

        @FPrice DECIMAL(28,10),

        @FDiscount DECIMAL(28,10),

        @FDisableDate DATETIME,

        @FQuoteTime DATETIME

      SELECT  @FUsed = FUsed,@FSupID = FSupID,@FItemID = FItemID,@FPrice = FPrice,

              @FDiscount = FDiscount,@FDisableDate = FDisableDate,

              @FQuoteTime = FQuoteTime

      FROM    Inserted

      IF  UPDATE(FUsed)  AND @FUsed = 1 AND @FQuoteTime <= GETDATE() AND @FDisableDate > GETDATE()

        BEGIN

        --@FPrice 为含税单价

        --select a1.fqty,a1.fcommitQty,a1.FStockQty,  --订货数量,到货数量,入库数量

        --a1.fcess,  --税率

        --a1.fprice,a1.fauxprice,a1.famount,--未税单价,辅助单价,未税金额

        --a1.fauxtaxprice,a1.fallamount,a1.ftaxamount, --含税单价, 价税合计,税额

        --a1.fauxpricediscount,a1.fpricediscount,a1.ftaxprice,  --实际含税单价, 含税单价,含税单价

        --a1.FEntrySelfP0247,a1.FAmtDiscount  --含税单价,折扣额

        --from poorderentry a1

        --left join poorder b1 on a1.finterid=b1.finterid

        --where b1.fbillno='0911M0533'

        UPDATE  a1

        SET     a1.FPrice = @FPrice / ( 1 + a1.FCess / 100 ),

                a1.FAuxPrice = @FPrice / ( 1 + a1.FCess / 100 ),

                a1.FAmount = @FPrice / ( 1 + a1.FCess / 100 ) * a1.FQty,

                a1.FAuxTaxPrice = @FPrice,a1.FAllamount = @FPrice * a1.FQty,

                a1.FTaxAmount = @FPrice / ( 1 + a1.FCess / 100 ) * a1.FCess / 100 * a1.FQty,

                a1.FAuxPriceDiscount = @FPrice * ( 1 - @FDiscount / 100 ),

                a1.FPriceDiscount = @FPrice * ( 1 - @FDiscount / 100 ),

                a1.FTaxPrice = @FPrice,

                a1.FAmtDiscount = @FPrice / ( 1 + a1.FCess / 100 ) * a1.FQty * @FDiscount / 100

        FROM    POOrderEntry a1,

                POOrder b1

        WHERE   a1.FPrice = 0 AND b1.FSupplyID = @FSupID AND a1.FItemID = @FItemID

                AND b1.FInterID = a1.FInterID

      END

    END

     

  • 相关阅读:
    【雕爷学编程】MicroPython动手做(01)——春节后入手了K210开发板
    【雕爷学编程】零基础Python(01)---“投机取巧”的三条途径
    【雕爷学编程】Arduino动手做(64)---RGB全彩LED模块
    Microsoft Development Platform Technologies
    JS 的Date对象
    SQL数据库连接池与C#关键字return
    RDLC报表 报表数据 栏 快捷键
    C# 操作World生成报告
    SAP-ABAP系列 第二篇SAP ABAP开发基础
    SAP-ABAP系列 第一篇SAP简介
  • 原文地址:https://www.cnblogs.com/jshchg/p/2149734.html
Copyright © 2020-2023  润新知