Toplu yapılan fiyat değişikliklerinde önceki satış fiyatına dönmek için aşağıdaki sql kodu kullanılabilir. Stok ekranına Satış Fiyat Değişim Zaman alanı eklenerek fiyat değişikliğinin ne zaman yapıldığı bulunabilir. Kodda yer alan baslangic_zaman ve bitis_zaman değişkenlerine aşağıda yazıldığı formatta fiyat değişim zaman aralığı yazılır.
Kod çalıştırıldığında başlangıç ve bitiş zaman aralığında fiyatı değişen stok kartlarının merkezi perakende satış fiyatı, önceki satış fiyatına döndürülür.
execute block
as
declare variable xstokbirim_k type of k;
declare variable xstok_k type of k;
declare variable skonum_k type of k;
declare variable xpsatisfiyat_eski type of para;
declare variable baslangic_zaman type of zaman;
declare variable bitis_zaman type of zaman;
begin
--baslangıç ve bitiş zamanı; fiyat değişikliği zaman aralığını belirtir
baslangic_zaman='2023-10-2 20:54:58';
bitis_zaman='2023-10-2 20:54:59';
for
select sb.stok_k, stokbirim_k from stokbirimfiyat sbf
join stokbirim sb on sb.k=sbf.stokbirim_k
where sbf.guncelleme_zaman between :baslangic_zaman and :bitis_zaman and satis=1 and konum_k=2
into :xstok_k, :xstokbirim_k
do
begin
-- Bir önceki satış fiyatına dönmek için aşağıdaki satırı kullanabilirsiniz.
select psatisfiyat_eski from stokfiyat where stok_k=:xstok_k and konum_k=2 into :xpsatisfiyat_eski;
-- Daha eski satış fiyatları için aşağıdaki satır kullanılabilir. Aktif etmek için satır başındaki -- silinecek
--select first 1 skip 1 satisfiyat from stokfiyatarsiv where konum_k=2 and stok_k=:xstok_k order by degisimzaman desc into :xpsatisfiyat_eski;
update stokbirimfiyat set fiyat=:xpsatisfiyat_eski where stokbirim_k=:xstokbirim_k and konum_k=2 and satis=1;
end
end