1

Konu: fifo maliyet hesaplaması?

Herkese selam
arkadaşlar fifo maliyet hesaplaması için algoritma kuramadım. giren ve çıkan ürün toplamları fiyatları ve tutar bilgileri var tablomda. bu listeyi tarih sırasında listelerken her çıkış hareketinin yanına kar sütunu koyup hesaplama yaptırmam gerekiyor.

Girişler                              Çıkışlar
--------------------------------------------------
miktar   fiyat     tutar     miktar fiyat tutar
--------  ---    ---------   --------  ---   --------
1.000     5       5.000   
   526     9       4.734
9.200    11   101.200 
                                  3.000    19   57.000  kar
                                     500    12    5.500


ilk çıkan 3.000 ad  satışın kar sütununun hesaplama yöntemi şöyle olmalı ilk girişlerden alarak hesaplamalı

1.000x(19-5)=14.000
526x(19-9)= 5.260    buraya kadar 3.000 ad satışın 1.526 kullanıldı. kalan 1.474 ad kısmınıda 9.200 girişten alıcak
1.474x(19-11)=11.792
11.792+5.260+14.000=31.052 toplam kar

çıkış satırı şöyle olmalı
3.000   19  57.000  31.052

yardımcı olursanız sevinirim

2

Re: fifo maliyet hesaplaması?

selamlar;
http://www.fox4um.com/viewtopic.php?id=248 belki konu ile alakalıdır.  bi incelemeni öneririm.

Bilmediğin Neyse Yanıldığındır.

3

Re: fifo maliyet hesaplaması?

mrduyar yazdı:

selamlar;
http://www.fox4um.com/viewtopic.php?id=248 belki konu ile alakalıdır.  bi incelemeni öneririm.


bu sayfa kümülatif toplamla ilgili. benim sorunum farklı

4 Son düzenleyen, river (02.05.2007 13:49:23)

Re: fifo maliyet hesaplaması?

Senin mantigini esas alarak oneri getiriyorum. Bana kalsa tasarim taa basindan degisir ama o bence olani. Bir de hareketlerin giriscikis yonunu belirleyen direction diye bir degisken oldugunu varsayarak ve directin = 1 giris, direction=2 cikis olmak uzere ;
Girisler icin Used4Fifo diye bir alan, cikislar icin Calc4Fifo diye bir alan ekle.

TEST ETMEDIM gerek runtime hatalar icin gerekse de tasarim hatalari icin sorumluluk sende; sadece ornek olur mu diyerekten bir karalama yapayim istedim.
MESELA bu hesaplatmadan sonra giris cikis miktarlarinda degisikliklere yol acacak turden guncelleme yapilirsa Calc4Fifo lari da Used4Fifo lari da SIFIRLAYIP yeniden calistirmak zorundasin.
Buna benzer baska seyler de gordugumden tasarimi taa bastan farkli yaparim dedim, bu durumu da guncellemelerinde goz onunde TUTMAYI SAKIN UNUTMA!!!

Seninkine uygun olacak yontem
*/Index IslemTarihi + IslemSaati olmali ve Giris yapilmadan cikis hareketi engellenmeli - bakiye stok
*/veya DTOS(IslemTarihi)+Str(Direction) olmali ki ayni tarihli islemlerde girisler once gelsin
Go top
Do While !Eof()
     if direction = 1
        skip
        loop
    endif
    if Calc4Fifo = Cikan
       SKIP
       LOOP
    endif
    threcno = RecNo()
    m.kar = CalcKar(Cikan,CikisFiyat)
    go threcno
    replace Kar With m.Kar
    */ Stoklarda - bakiyeye izin vermediysen calc4fifo larin tamamen cikan kadar olmasi
    */ lazim esasindan hareketle ...
    if calc4fifo < cikan       && ola ki stoklarda eksiye dusecek sekilde satislara izin verdiysen...!
        *exit ; veya skip / loop artik sana bagli
        skip
        loop
    endif
    skip
enddo

return

Function CalcKar

Parameters _cikanMiktar,_cikisFiyati
retkar = 0

Go Top
Do While !Eof()
     if direction = 2
        SKIP
        LOOP
     endif
     if Used4Fifo = Giren
        SKIP
         LOOP
     endif
     Kullanilabilir = Giren - Used4Fifo
     if kullanilabilir >= _cikanmiktar
        replace Used4Fifo With Used4Fifo + _cikanmiktar
        kullanilan = _cikanmiktar
    else
        kullanilan = Kullanilabilir
        replace Used4Fifo with giren       && hepsi degerlendirildi
    endif
    retkar = retkar + Kullanilan * ( _cikisFiyat - GirisFiyat)
    deepthrec = recno()
    go threcno
    replace Calc4Fifo with Calc4Fifo + Kullanilan
    _cikanmiktar = _cikanmiktar - Kullanilan
    go deepthrec
     if _cikanmiktar < 0
          WAIT WIND "tasarim hatasi"
          cancel
    endif
    if _cikanmiktar = 0
        return retkar
    endif
    skip
enddo

wait wind "tasarim hatasi 2"

cancel

5

Re: fifo maliyet hesaplaması?

Garip bir maliyet hesabi olacak. Karaborsacilar mi bunlar:) Belkide maliyetinin yarısına satisla kar boyle oluyordur:)

Visual Fox Pro
Create Cursor girisler (pk i Autoinc, kod i, tarih d, miktar i, fiyat Y)

Create Cursor cikislar (pk i Autoinc, kod i, tarih d, miktar i, fiyat Y)
 
Insert Into girisler (kod, tarih, miktar, fiyat) Values (1,Date()-99,1000,5)
Insert Into girisler (kod, tarih, miktar, fiyat) Values (1,Date()-98,526,9)
Insert Into girisler (kod, tarih, miktar, fiyat) Values (1,Date()-97,9200,11)
 
Insert Into cikislar (kod, tarih, miktar, fiyat) Values (1,Date()-92,3000,19)
Insert Into cikislar (kod, tarih, miktar, fiyat) Values (1,Date()-91,500,12)
 
Create Cursor hesap ;
  (gpk i, cpk i, kod i, ;
  gtarih d, gmiktar i, gfiyat Y, gkalan i, ;
  ctarih d, cmiktar i, cfiyat Y, ckalan i)
Index On Padl(kod,10,'0')+Dtoc(gtarih,1)+Padl(-cpk,10,'0') Tag Main
 
Select pk As cpk,;
  kod,;
  tarih As ctarih, ;
  miktar As cmiktar, ;
  fiyat As cfiyat ;
  FROM cikislar ;
  ORDER By 2,3 ;
  INTO Cursor crsCikis nofilter
Scan
  Scatter Memvar
  ckalan  = m.cmiktar
 
  Insert Into hesap (gpk,kod,gtarih, gmiktar, gfiyat, gkalan) ;
    SELECT pk, gr.kod, tarih, Nvl(gkalan,miktar), fiyat, Nvl(gkalan,miktar) ;
    FROM girisler gr ;
    left Join hesap hp On gr.pk = hp.gpk ;
    WHERE gr.kod = m.kod And pk Not In ;
    (Select gpk From hesap Where gkalan = 0 Or cpk=0) ;
    order By gr.kod,tarih
  Select hesap
  Locate For ;
    kod = m.kod ;
    AND gtarih <= m.ctarih ;
    AND gkalan > 0 ;
    AND Empty(cpk)
  If !Eof()
    Scan While kod = m.kod ;
        AND gtarih <= m.ctarih ;
        AND gkalan > 0 And m.ckalan > 0 ;
        FOR Empty(cpk)
 
      cmiktar = Min(gkalan, m.ckalan)
      ckalan  = m.ckalan - Min(gkalan, m.ckalan)
      gkalan  = gkalan - m.cmiktar
      Gather Memvar Fields cpk,ctarih,cmiktar,cfiyat,ckalan,gkalan
    Endscan
  Endif
Endscan
 
Select *, cmiktar*cfiyat - cmiktar*gfiyat As kar From hesap Order By kod,ctarih,gtarih

6

Re: fifo maliyet hesaplaması?

öncelikle herkese yardımcı oldukları için teşekkür ederim.

kodu gerçek dataya uygulama ve testin tamamı bitmedi ama, şimdiye kadar uyguladıklarıma bakınca

Çetin hocam!
Siz programcı değilsiniz. program filanda yazmıyorsunuz.!
sanatçısınız, sanatçı. sanat yapan bir üstad. bu kompliman filan değil, hayatım boyunca hep inandığım doğruları söyledim. inanın bana bugünde buna inanıyorum.
İnşallah ülkemizde sizin gibi insanların sayısı çok fazla olur. İnşallah sağlıklı bir şekilde uzun yaşarsınız.

herşey için sağolun. Teşşekkürler

7

Re: fifo maliyet hesaplaması?

Ya boyle mesaja ne cevap verilir, şımartıyorsun:) Sen beni güldürdün Allah da seni güldürsün.

8

Re: fifo maliyet hesaplaması?

erdalyancin kardeşimin sanatçı ve diğer ifadelerine katılmadan edemiyeceğim... saygılarımla.

Bilmediğin Neyse Yanıldığındır.

9 Son düzenleyen, ugurlu2001 (04.05.2007 11:24:44)

Re: fifo maliyet hesaplaması?

Sevgili Erdal, her söylediğine harfi harfine katılıyorum.  Saygı ve sevgilerimle ...

Ayrıca, yukarıdaki kod örneği gerçekten muhteşem. Üstad, bende benzer bir örnek istersem çok olurmuyum ...

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

10

Re: fifo maliyet hesaplaması?

eee çetin hocam bu müsadenizle farkı olacak tabii