Araç Vergisi Hesaplayıcı'nın "Vergili fiyattan vergisiz fiyatı hesapla" modunu geçici olarak devre dışı bıraktım.
Vergili fiyattan ÖTV oranını bulabilmek için vergisiz fiyatı bulmak gerekiyor ancak vergisiz fiyatı bulabilmek için de ÖTV oranını bulmak gerekiyor.
Newton-Raphson yöntemi denilen bir yöntem varmış. Bu konu hakkında biraz okuma yapacağım. Çözünceye kadar devre dışı kalacak.

Newton: şimdi elmanin elmasini yediniz
şu satırlara göre vergi dahil fiyat hesaplayıp sonrasında tersi için kod yazacaksın, bir şey yok. motor hacmi <1400 ve satış fiyatı x ve y aralığında ise %45 diye ayrı ayrı girmen gerek. matrah düzenlendiğinde karışır ama.
Vergi hariçten vergi dahili hesaplama böyle zaten. Ancak bu fiyat aralıkları aracın vergisiz fiyatına göre belirleniyor. Ters hesaplama yaparken vergi dahil fiyata hangi ÖTV oranı uygulanıp da o fiyata ulaşıldı bunu bulamıyoruz. ÖTV için vergisizi bilmek gerekirken vergisizi bilmek için ÖTV'yi bilmek gerekiyor.
Sırasıyla TRT, ÖTV, KDV var. Ters yaparken önce yüzde 20 KDV'yi çıkarmak, daha sonra bilmediğin bir oranda ÖTV'yi çıkarmak ve ondan da binde 8 TRT'yi çıkarmak gerekiyor. ÖTV oranını "bilebilmek" için ÖTV'yi ve TRT çıkarmış olup vergisiz fiyata erişmiş olmak gerekiyor.
Ekleme: Araç özelliklerine göre toplam vergi oranı biliniyor. Buna göre vergi dahilden doğrudan vergi harici bulmak mümkün ama her kalemi tek tek bulmak gerekiyor ve bu da bu gönderinin sebebi.
@ozgurg bir daha atayım. satış bedellerine göre hangi ötv'nin geldiği de belli aslında, tabloya bakarsan çakışma yok. hatta bir tutardan 1 tl arttığında başka bir tutara sıçrama var. tek sıkıntısı vergi dahil aralık verildiğinde hata vermesi gereken aralıklar var. verdiğim tablo eski ama mantığını anlamışsındır. limitlere göre bir önceki ve bir sonrakini hesaplayıp o aralıkta hata verdirip o tutardan üst tutarı başlatacaksın.
1.4-1.6 arası motorda 843.500'de %80'e geçiyor senin hesaplayıcı, 850'ye kadar geçmemesi lazım. buradaki kodları da düzenlemen gerekir.
@ozgurg kodu düzelttin diyelim, 850'den başlıyor. vergili fiyatı 850*1.80*1.20*1.008=1.850.688'den büyükse ve 1.4-1.6 seçiliyse %80 diye hesaplayacaksın, buna göre ters işlem yapacaksın.
ta ki 1.100.000*1.80*1.20*1.008=2.395.008 TL'ye kadar.
bir sonraki aralık (%90 için) 1.100.000*1.90*1.20*1.008=2.528.064'den başlayacak. bu iki değer arasında araç satış bedeli olamaz.
bunu tablodaki her satır için alt ve üst matrahlara göre hesaplayıp manuel yazman gerek. ben olsam hesabı koda yazar, matrahları girerdim, matrah değiştiğinde onu değiştirirsin bir sonrakinde.
@sqn Şu anda detaylı inceleyemedim ama bu bir çözüm gibi duruyor. Site ile ilgilenirken detaylı olarak inceleyeceğim. Bilgi veririm. Teşekkür ederim.
@ozgurg şirket hesabından excel paylaşmayayım şimdi ama satış fiyatı aralığına ve motora göre ötv belirlemen gerekiyor. formülü vereyim, sorun olursa cevaplarım.
Kök bulma yöntemi...
Yönteme gerek yok: 1 liradan 10 milyona (mesela) tamsayı olarak tüm sayıları deneyeceksin (brute force), oldu bitti. İnsan olsa bu işi yapamaz ama bilgisayarın olayı bu, hele artık günümüzde çok güçlü bilgisayarlar. Biraz verimsiz olur ama o kadar verimsizlik kadı kızında da olur 😛
EK: Hatta bunları önceden hesaplayıp tablo yapmak bu şekilde hızlı hesaplamak da mümkün olur. O da biraz hafızadan yer ama daha bol ne var?