begin
FOR
SELECT
ID, TaxBasePriceInitial, IncomeTaxDeductionRate, Status
FROM
AssetCards AC
WHERE
(IncomeTaxDeductionRate <> 0) and
(AssetOrigin = 0) and
(
(
(FileInDate$Date >= :ADateFrom) and (FileInDate$Date < :ADateTo) and ((Status = 1) or (Status = 2))
) or
(
(FileInDate$Date < :ADateFrom) and
(DiscardDate$Date >= :ADateFrom) and (DiscardDate$Date < :ADateTo) and
(((ib_decodedate_year(DiscardDate$Date) - ib_decodedate_year(FileInDate$Date)) <= 3)
and (Status = 2))
)
)
INTO
:mID, :mTaxBasePrice, :mIncomeTaxDeductionRate, :mStatus
DO begin
ID = :mID;
outDeductionAmount = :mTaxBasePrice * :mIncomeTaxDeductionRate / 100;
if (:mStatus = 2) then begin
outDeductionAmount = -1 * outDeductionAmount;
end
suspend;
end
end;