CREATE OR ALTER  VIEW V_Okc_Hesaplama      
AS      
Select IslemNo,StokKodu,StokAdi,Miktar,Birim,BirimInpos,      
  ROUND(IskontoluSatirToplam/Miktar,2)BirimFiyat,Kdv,      
  ROUND(KdvDahilBirimFiyat,2)KdvDahilBirimFiyat,      
  ROUND(Iskonto1,2) Iskonto1,      
  ROUND(Iskonto2,2)Iskonto2,      
  ROUND(Iskonto3,2) Iskonto3,      
  ROUND(IskontoluSatirToplam,2) IskontoluSatirToplam ,       
  ROUND(IskontosuzSatirToplam,2) IskontosuzSatirToplam ,       
  ROUND(SatirKdvTutari,2) SatirKdvTutari ,      
  ROUND(IskontoluSatirToplam + SatirKdvTutari,2)   KdvDahilIskontoluSatirTutari,      
  ROUND(IskontosuzSatirToplam - IskontoluSatirToplam,2)  KdvHaricIskontoTutari,ROUND(AltIskontoTutari,2)AltIskontoTutari,
  ROUND(SonTutar,2)SonTutar,
  ROUND(SatirIskontoTutari,2)SatirIskontoTutari,
  ROUND(BirimFiyat,2) InposBrFiyat,
  DepartmanKodu
  from (      
  select sh.IslemNo,StokKodu,StokAdi,Miktar,(Select TOP 1 IsoBirimKodu from BIRIM where BirimAdi = Birim)Birim,BirimFiyat,Kdv,BirimFiyat *( 100+ Kdv) /100 KdvDahilBirimFiyat,Iskonto1,Iskonto2,Iskonto3,      
  Miktar  * BirimFiyat * (100 - Iskonto1) / 100 * (100 - Iskonto2) /100 * (100 - Iskonto3)/100 * ((100 - sh.AltIskYuzde1) * (100 - sh.AltIskYuzde2) * (100 - sh.AltIskYuzde3) / 1000000) IskontoluSatirToplam,      
  Miktar  * BirimFiyat IskontosuzSatirToplam,      
  Miktar  * BirimFiyat * (100 - Iskonto1) / 100 * (100 - Iskonto2) /100 * (100 - Iskonto3)/100 * ((100 - sh.AltIskYuzde1) * (100 - sh.AltIskYuzde2) * (100 - sh.AltIskYuzde3) / 1000000) * Kdv / 100 SatirKdvTutari,
  CASE (Select TOP 1 IsoBirimAdi from BIRIM where BirimAdi = Birim) 
  WHEN 'Adet' THEN 0
  WHEN 'Gram' THEN 1
  WHEN 'Kilogram' THEN 2
  WHEN 'Ton' THEN 3
  WHEN 'Mililitre' THEN 4
  WHEN 'Litre' THEN 5
  WHEN 'Metre' THEN 6
  WHEN 'Kilometre' THEN 7
  WHEN 'Porsiyon' THEN 8
  ELSE 0
  END BirimInpos,
  (Miktar  * BirimFiyat)-(Miktar  * BirimFiyat * (100 - Iskonto1) / 100 * (100 - Iskonto2) /100 * (100 - Iskonto3)/100  * (100 - Iskonto4)/100) SatirIskontoTutari,
  db.EkIskTut1 + db.EkIskTut2 + db.EkIskTut3 AltIskontoTutari,
  SonTutar,
  (select DepartmanKodu from STOKKARTI where Kodu = sh.StokKodu) DepartmanKodu
  from STOKHAR sh,STOKHARDETBAG db
  where sh.IslemNo = db.IslemNo
) tbl 