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,     
  Miktar * ROUND(KdvDahilBirimFiyat,2) KdvliIskontosuzSatirToplami,   
  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 