CROSS APPLY query with CASE and running totals
The following will work on sql-server 2012+. Note that there were a couple of inconsistencies between your supplied SQL and the sample schema that you provided and I think I have followed the names in your SQL.

With CTE_CalcTotalDisc As (
    Select d.SaleID, s.Amount, d.Discount, d.Tipo, d.Seq,
        T_Disc = iif(d.Tipo = 'V', d.Discount, (s.Amount * d.Discount)),
        CurrentValue = iif(d.Tipo = 'V', s.Amount - d.Discount, iif(d.Tipo = 'P', s.Amount - (s.Amount * d.Discount), 0))
      From #disc As d
      Join #sales As s On d.SaleID = s.SaleID
      Where d.Seq = 1
    Union All
    Select d.SaleID, Amount = cte.CurrentValue, d.Discount, d.Tipo, d.Seq,
        T_Disc = iif(d.Tipo = 'V', d.Discount, (cte.CurrentValue * d.Discount)),
        CurrentValue = iif(d.Tipo = 'V', cte.CurrentValue - d.Discount, iif(d.Tipo = 'P', cte.CurrentValue - (cte.CurrentValue * d.Discount), 0))
      From #disc As d
      Join CTE_CalcTotalDisc As cte
        On d.SaleID = cte.SaleID
        And d.Seq = cte.Seq + 1),
CTE_Ordered As (
    Select SaleID, CurrentValue, 
        Discount = Sum(T_Disc) Over (Partition By SaleID Order By Seq Asc), 
        RowNo = Row_Number() Over (Partition By SaleID Order By Seq Desc)
      From CTE_CalcTotalDisc)
--Select * From CTE_CalcTotalDisc
Select * From CTE_Ordered Where RowNo = 1;


Note the use of Row_Number(), partitioned by SaleID and sorted descending by Seq to get the final value, and the use of Sum() to get the running total of the discount.

You can uncomment the commented select statement to view all rows, not just the final row for each SaleID.