Go3'te FİFO elde kalan malzeme maliyeti (Kalan mal tutarı)

Gönderen Konu: Go3'te FİFO elde kalan malzeme maliyeti (Kalan mal tutarı)  (Okunma sayısı 1154 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Sofu Ahmed

  • Yeni Kullanıcı
  • *
  • Karma: 0
Mikro veri tabanı yapısını bilmiyorum fakat , ilk paylaşmış olduğunuz sorguda aynı gün içinde girişlerde veya çıkışları mükerrer toplam alır.


Çevrimdışı odcy2000

  • Yeni Kullanıcı
  • *
  • Karma: 0
Buda benim logo ya uyarladığım ama hata veriyor.

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[_FIFO]') AND type in (N'U'))
DROP TABLE [dbo].[_FIFO]
GO


CREATE TABLE
_FIFO
(stok_kodu NVARCHAR(25),
stok_ismi NVARCHAR (50),
depodaki_miktar FLOAT,
kalan_fifo_deger FLOAT)
GO

WITH cteStockSum
AS      (

      SELECT  STOCKREF,
            SUM(CASE  WHEN TRCODE = '8' THEN 0-AMOUNT
                      WHEN TRCODE = '1' then AMOUNT END) AS EldekiStok,PRICE AS Fiyat
            FROM  dbo.LG_005_01_STLINE
      GROUP BY  STOCKREF,PRICE
),

 
TerstenGirenToplami
AS      (
   SELECT  s.STOCKREF,
           s.DATE_,
           (
               SELECT SUM(i.AMOUNT)
                 FROM dbo.LG_005_01_STLINE AS i
                WHERE i.STOCKREF = s.STOCKREF
                  AND i.TRCODE IN ('1', '1')
                  AND i.DATE_ >= s.DATE_
           ) AS YuruyenMiktar,
           s.AMOUNT AS BuStok
     FROM  dbo.LG_005_01_STLINE AS s
    WHERE  s.TRCODE IN ('1', '1')

),

cteWithLastDATE_
AS      (
  SELECT   w.STOCKREF,
           w.EldekiStok,
           SonKismiStok.DATE_,
           SonKismiStok.StockToUse,
           SonKismiStok.RunningTotal,
           w.EldekiStok - SonKismiStok.RunningTotal + SonKismiStok.StockToUse AS UseBuStok

      FROM cteStockSum AS w
           CROSS APPLY  ( SELECT TOP(1) 
                                 z.DATE_,
                                 z.BuStok AS StockToUse,
                                 z.YuruyenMiktar AS RunningTotal
                            FROM TerstenGirenToplami AS z
                           WHERE z.STOCKREF = w.STOCKREF
                             AND z.YuruyenMiktar >= w.EldekiStok
                        ORDER BY z.DATE_ DESC ) AS SonKismiStok

)
--
INSERT INTO _FIFO
(
   stok_kodu,
stok_ismi,
   depodaki_miktar,
   kalan_fifo_deger
)
--

SELECT y.STOCKREF as [Stok Kodu],
       dbo.fn_StokIsmi(y.STOCKREF) as [Stok Ismi],
       y.EldekiStok as Depomuzdaki_Miktar ,
       SUM(CASE WHEN e.DATE_ = y.DATE_ THEN y.UseBuStok
                ELSE e.AMOUNT
                END * Fiyat.Fiyat) AS KalanDeger
  FROM cteWithLastDATE_ AS y
 INNER JOIN  dbo.LG_005_01_STLINE AS e
    ON e.STOCKREF = y.STOCKREF
   AND e.DATE_ >= y.DATE_
   AND e.TRCODE IN ('1', '1')
 CROSS APPLY  (
 
         
            SELECT TOP(1)       
              dbo.fn_StokHareketNetBirimFiyat(
TOTAL, --sth_tutar,
CAMPPOINTS1,--sth_iskonto1,
CAMPPOINTS2, --sth_iskonto2,
CAMPPOINTS3, --sth_iskonto3,
CAMPPOINTS4, --sth_iskonto4,
GROSSUINFO1, --sth_iskonto5,
GROSSUINFO2, --sth_iskonto6,

CMPGLINEREFS1, --sth_masraf1,
CMPGLINEREFS2, --sth_masraf2,
CMPGLINEREFS3, --sth_masraf3,
CMPGLINEREFS4, --sth_masraf4,

SPECODE, --sth_otvtutari,
SPECODE2,--sth_oivtutari,
TRCODE, --sth_tip,
0,
PRCURR, --sth_har_doviz_kuru,
PRDEXPTOTAL, --sth_alt_doviz_kuru,
PRDORDSLPLNRESERVE, --sth_stok_doviz_kuru,
nullif(AMOUNT,1)) as Fiyat
         FROM dbo.LG_005_01_STLINE AS p
      WHERE p.STOCKREF = e.STOCKREF
       and dbo.fn_DegerFarki_mi(p.IOCODE)=0
        AND p.DATE_ <= e.DATE_
                    AND p.TRCODE = 1
       ORDER BY p.DATE_ DESC
     ) AS Fiyat
GROUP BY  y.STOCKREF,
          y.EldekiStok
ORDER BY   y.STOCKREF
SELECT     stok_kodu, stok_ismi, depodaki_miktar, kalan_fifo_deger
FROM         _FIFO


Msg 8134, Level 16, State 1, Line 2
Divide by zero error encountered.
The statement has been terminated.

(0 row(s) affected)

yukarıdaki sorguda bir veriyi düzeltiyorum bu seferde sorgu çalışıyor ama verileri getirmiyor.

Çevrimdışı Sofu Ahmed

  • Yeni Kullanıcı
  • *
  • Karma: 0
Birinci satırdaki hata sıfıra bölünme,İkinci olanda oluşturduğunuz alanların veri snırı ile alakalı aşağıdaki gibi değiştirin.

stok_kodu NVARCHAR(250),
stok_ismi NVARCHAR (250),

Sorguda özel tanımlanmış fonksiyon var, Bu fonksiyona ek olarak Whıle,Cursor gibi satır satır döngüye gidilip sonuç alınabilir.

Çevrimdışı MYERP

  • Logo Kullanıcısı
  • **
  • Karma: 0
Birinci satırdaki hata sıfıra bölünme,İkinci olanda oluşturduğunuz alanların veri snırı ile alakalı aşağıdaki gibi değiştirin.

stok_kodu NVARCHAR(250),
stok_ismi NVARCHAR (250),

Sorguda özel tanımlanmış fonksiyon var, Bu fonksiyona ek olarak Whıle,Cursor gibi satır satır döngüye gidilip sonuç alınabilir.

Yarın sakin sakin bakarım. Karşılaştırır cevabını yazarım.

Çevrimdışı odcy2000

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ok Teşekkürler, İyi akşamlar.

Çevrimdışı odcy2000

  • Yeni Kullanıcı
  • *
  • Karma: 0
İyi akşamlar nette bir sorgu buldum GO3 uyarladım. Veriler geliyor ancak en son bir hata veriyor.


CREATE NONCLUSTERED INDEX IX_Dave_General
        ON dbo.LG_005_01_STLINE
          (STOCKREF ASC,
            DATE_ DESC,
            TRCODE ASC
          )
         INCLUDE (AMOUNT,PRICE);
       GO
       CREATE NONCLUSTERED INDEX IX_Dave_Items
         ON dbo.LG_005_01_STLINE
         (STOCKREF ASC,
            DATE_ ASC
           )
      INCLUDE (AMOUNT)
       WHERE (TRCODE IN('1','1'));

       CREATE NONCLUSTERED INDEX IX_Dave_Price
         ON dbo.LG_005_01_STLINE
         (STOCKREF ASC,
            DATE_ ASC
          )
       INCLUDE (PRICE)
         WHERE (TRCODE='1');
       GO
      
       WITH cteStockSum
               AS ( SELECT STOCKREF,
                             SUM(CASE WHEN TRCODE = '8' THEN 0-AMOUNT
                                      ELSE AMOUNT
                                 END ) AS TotalStock
                    FROM    dbo.LG_005_01_STLINE
                    GROUP BY STOCKREF
                  ),

               cteReverseInSum
               AS (SELECT s.STOCKREF,
                             s.DATE_,
                               (SELECT SUM(i.AMOUNT)
                               FROM dbo.LG_005_01_STLINE AS i WITH (INDEX (IX_Dave_Items))
                               WHERE i.STOCKREF=s.STOCKREF
                                         AND i.TRCODE IN('1','1')
                                         AND i.DATE_> = s.DATE_
                             )   AS RollingStock,
                             s.AMOUNT AS ThisStock
                    FROM dbo.LG_005_01_STLINE AS s
                    WHERE s.TRCODE IN('1','1')
                  ),

                /* Using the rolling balance above find the first stock movement in that meets (or exceeds) our required stock level */
       /* and calculate how much stock is required from the earliest stock in */
             
cteWithLastTranDate
               AS (
             SELECT w.STOCKREF,
                             w.TotalStock,
                             LastPartialStock.DATE_,
                             LastPartialStock.StockToUse,
                             LastPartialStock.RunningTotal,
                             w.TotalStock-LastPartialStock.RunningTotal+LastPartialStock.StockToUse AS UseThisStock
                    FROM cteStockSum AS w
                             CROSS APPLY (SELECT TOP (1)
                                                     z.DATE_,
                                                     z.ThisStock AS StockToUse,
                                                     z.RollingStock AS RunningTotal
                                           FROM  cteReverseInSum AS z
                                           WHERE z.STOCKREF=w.STOCKREF
                                                      AND z.RollingStock>=w.TotalStock
                                           ORDER BY z.DATE_ DESC
                                   )   AS LastPartialStock
                  )
         /* Sum up the cost of 100% of the stock movements in after the returned stockid and for that stockid we need 'UseThisStock' items' */
         
         SELECT y.STOCKREF,
             y.TotalStock AS CurrentItems,
             SUM ( CASE WHEN e.DATE_ = y.DATE_ THEN y.UseThisStock
                      ELSE e.AMOUNT
                 END * PRICE.PRICE) AS CurrentValue
       FROM cteWithLastTranDate AS y
             INNER JOIN dbo.LG_005_01_STLINE  AS e WITH (INDEX (IX_Dave_Items))
             ON   e.STOCKREF = y.STOCKREF
                AND   e.DATE_> = y.DATE_
                AND   e.TRCODE IN('1','1')
             CROSS APPLY (
       /* Find the Price of the item in */ SELECT TOP (1)
                                                 p.PRICE
                                         FROM dbo.LG_005_01_STLINE AS   p WITH (INDEX (IX_Dave_Price))
                                         WHERE p.STOCKREF=e.STOCKREF
                                                 AND p.DATE_<=e.DATE_
                                                 AND p.TRCODE='1'
                                         ORDER BY p.DATE_ DESC
                         ) AS  PRICE
       GROUP BY y.STOCKREF,
             y.TotalStock
       ORDER BY y.STOCKREF;

0   0   0
2   40   3184,4
7   10   695
14   63   1805,26

Msg 1913, Level 16, State 1, Line 1
The operation failed because an index or statistics with name 'IX_Dave_General' already exists on table 'dbo.LG_005_01_STLINE'.
Msg 1913, Level 16, State 1, Line 9
The operation failed because an index or statistics with name 'IX_Dave_Items' already exists on table 'dbo.LG_005_01_STLINE'.

(3562 row(s) affected)

Çevrimdışı ByBirol®

  • Logo Sistem Administrator
  • Logo Uzmanı
  • *****
  • Karma: 18
  • admin@artibilisim.com Logo Çözüm Ortağı
index zaten var diyor , aşadaki şekilde deneyiniz

 IF EXISTS (SELECT * FROM sys.indexes WHERE name='IX_Dave_General' )  DROP INDEX LG_018_01_STLINE.IX_Dave_General;

  IF EXISTS (SELECT * FROM sys.indexes WHERE name='IX_Dave_Items' )  DROP INDEX LG_018_01_STLINE.IX_Dave_Items;

   IF EXISTS (SELECT * FROM sys.indexes WHERE name='IX_Dave_Price' )  DROP INDEX LG_018_01_STLINE.IX_Dave_Price;
       
      CREATE NONCLUSTERED INDEX IX_Dave_General        ON dbo.LG_018_01_STLINE          (STOCKREF ASC,DATE_ DESC,TRCODE ASC )  INCLUDE (AMOUNT,PRICE);
       
       CREATE NONCLUSTERED INDEX IX_Dave_Items          ON dbo.LG_018_01_STLINE         (STOCKREF ASC,DATE_ ASC)  INCLUDE (AMOUNT)   WHERE (TRCODE IN('1','1'));

       CREATE NONCLUSTERED INDEX IX_Dave_Price         ON dbo.LG_018_01_STLINE         (STOCKREF ASC,DATE_ ASC)  INCLUDE (PRICE)   WHERE (TRCODE='1');
       
     

       WITH cteStockSum
               AS ( SELECT STOCKREF,
                             SUM(CASE WHEN TRCODE = '8' THEN 0-AMOUNT
                                      ELSE AMOUNT
                                 END ) AS TotalStock
                    FROM    dbo.LG_018_01_STLINE
                    GROUP BY STOCKREF
                  ),

               cteReverseInSum
               AS (SELECT s.STOCKREF,
                             s.DATE_,
                               (SELECT SUM(i.AMOUNT)
                               FROM dbo.LG_018_01_STLINE AS i WITH (INDEX (IX_Dave_Items))
                               WHERE i.STOCKREF=s.STOCKREF
                                         AND i.TRCODE IN('1','1')
                                         AND i.DATE_> = s.DATE_
                             )   AS RollingStock,
                             s.AMOUNT AS ThisStock
                    FROM dbo.LG_018_01_STLINE AS s
                    WHERE s.TRCODE IN('1','1')
                  ),

                /* Using the rolling balance above find the first stock movement in that meets (or exceeds) our required stock level */
       /* and calculate how much stock is required from the earliest stock in */
             
cteWithLastTranDate
               AS (
             SELECT w.STOCKREF,
                             w.TotalStock,
                             LastPartialStock.DATE_,
                             LastPartialStock.StockToUse,
                             LastPartialStock.RunningTotal,
                             w.TotalStock-LastPartialStock.RunningTotal+LastPartialStock.StockToUse AS UseThisStock
                    FROM cteStockSum AS w
                             CROSS APPLY (SELECT TOP (1)
                                                     z.DATE_,
                                                     z.ThisStock AS StockToUse,
                                                     z.RollingStock AS RunningTotal
                                           FROM  cteReverseInSum AS z
                                           WHERE z.STOCKREF=w.STOCKREF
                                                      AND z.RollingStock>=w.TotalStock
                                           ORDER BY z.DATE_ DESC
                                   )   AS LastPartialStock
                  )
         /* Sum up the cost of 100% of the stock movements in after the returned stockid and for that stockid we need 'UseThisStock' items' */
         
         SELECT y.STOCKREF,
             y.TotalStock AS CurrentItems,
             SUM ( CASE WHEN e.DATE_ = y.DATE_ THEN y.UseThisStock
                      ELSE e.AMOUNT
                 END * PRICE.PRICE) AS CurrentValue
       FROM cteWithLastTranDate AS y
             INNER JOIN dbo.LG_018_01_STLINE  AS e WITH (INDEX (IX_Dave_Items))
             ON   e.STOCKREF = y.STOCKREF
                AND   e.DATE_> = y.DATE_
                AND   e.TRCODE IN('1','1')
             CROSS APPLY (
       /* Find the Price of the item in */ SELECT TOP (1)
                                                 p.PRICE
                                         FROM dbo.LG_018_01_STLINE AS   p WITH (INDEX (IX_Dave_Price))
                                         WHERE p.STOCKREF=e.STOCKREF
                                                 AND p.DATE_<=e.DATE_
                                                 AND p.TRCODE='1'
                                         ORDER BY p.DATE_ DESC
                         ) AS  PRICE
       GROUP BY y.STOCKREF,
             y.TotalStock
       ORDER BY y.STOCKREF;
« Son Düzenleme: 17.12.2018, 00:35 Gönderen: ByBirol® »

Çevrimdışı odcy2000

  • Yeni Kullanıcı
  • *
  • Karma: 0
Teşekkürler çalıştı. Ancak 6500 kayıttan sadece 3250 kaydı getiriyor. Birde bu sorguya aşağıdaki cümleleri de ekliyorum. GO3/Table altında _FİFO diye bir tablo açıyor ancak verileri oraya getirmiyor. Buradaki eksiğim ne acaba

IF EXISTS (SELECT * FROM sys.indexes WHERE name='IX_Dave_General' )  DROP INDEX LG_005_01_STLINE.IX_Dave_General;

  IF EXISTS (SELECT * FROM sys.indexes WHERE name='IX_Dave_AMOUNT' )  DROP INDEX LG_005_01_STLINE.IX_Dave_AMOUNT;

   IF EXISTS (SELECT * FROM sys.indexes WHERE name='IX_Dave_PRICE' )  DROP INDEX LG_005_01_STLINE.IX_Dave_PRICE;

   IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[_FIFO]') AND type in (N'U'))
DROP TABLE [dbo].[_FIFO]
GO




       
      CREATE NONCLUSTERED INDEX IX_Dave_General        ON dbo.LG_005_01_STLINE          (STOCKREF ASC,DATE_ DESC,TRCODE ASC )  INCLUDE (AMOUNT,PRICE);
       
       CREATE NONCLUSTERED INDEX IX_Dave_AMOUNT          ON dbo.LG_005_01_STLINE         (STOCKREF ASC,DATE_ ASC)  INCLUDE (AMOUNT)   WHERE (TRCODE IN('1','1'));

       CREATE NONCLUSTERED INDEX IX_Dave_PRICE         ON dbo.LG_005_01_STLINE         (STOCKREF ASC,DATE_ ASC)  INCLUDE (PRICE)   WHERE (TRCODE='1');
       
     CREATE TABLE
_FIFO
(stok_kodu NVARCHAR(25),
stok_ismi NVARCHAR (50),
depodaki_miktar FLOAT,
kalan_fifo_deger FLOAT)
GO

       WITH cteStockSum
               AS ( SELECT STOCKREF,
                             SUM(CASE WHEN TRCODE = '8' THEN 0-AMOUNT
                                      ELSE AMOUNT
                                 END ) AS TotalStock
                    FROM    dbo.LG_005_01_STLINE
                    GROUP BY STOCKREF
                  ),

               cteReverseInSum
               AS (SELECT s.STOCKREF,
                             s.DATE_,
                               (SELECT SUM(i.AMOUNT)
                               FROM dbo.LG_005_01_STLINE AS i WITH (INDEX (IX_Dave_AMOUNT))
                               WHERE i.STOCKREF=s.STOCKREF
                                         AND i.TRCODE IN('1','1')
                                         AND i.DATE_> = s.DATE_
                             )   AS RollingStock,
                             s.AMOUNT AS ThisStock
                    FROM dbo.LG_005_01_STLINE AS s
                    WHERE s.TRCODE IN('1','1')
                  ),

                /* Using the rolling balance above find the first stock movement in that meets (or exceeds) our required stock level */
       /* and calculate how much stock is required from the earliest stock in */
             
cteWithLastTranDate
               AS (
             SELECT w.STOCKREF,
                             w.TotalStock,
                             LastPartialStock.DATE_,
                             LastPartialStock.StockToUse,
                             LastPartialStock.RunningTotal,
                             w.TotalStock-LastPartialStock.RunningTotal+LastPartialStock.StockToUse AS UseThisStock
                    FROM cteStockSum AS w
                             CROSS APPLY (SELECT TOP (1)
                                                     z.DATE_,
                                                     z.ThisStock AS StockToUse,
                                                     z.RollingStock AS RunningTotal
                                           FROM  cteReverseInSum AS z
                                           WHERE z.STOCKREF=w.STOCKREF
                                                      AND z.RollingStock>=w.TotalStock
                                           ORDER BY z.DATE_ DESC
                                   )   AS LastPartialStock
                  )
         /* Sum up the cost of 100% of the stock movements in after the returned stockid and for that stockid we need 'UseThisStock' items' */
         
         SELECT y.STOCKREF,
             y.TotalStock AS CurrentItems,
             SUM ( CASE WHEN e.DATE_ = y.DATE_ THEN y.UseThisStock
                      ELSE e.AMOUNT
                 END * PRICE.PRICE) AS CurrentValue
       FROM cteWithLastTranDate AS y
             INNER JOIN dbo.LG_005_01_STLINE  AS e WITH (INDEX (IX_Dave_AMOUNT))
             ON   e.STOCKREF = y.STOCKREF
                AND   e.DATE_> = y.DATE_
                AND   e.TRCODE IN('1','1')
             CROSS APPLY (
       /* Find the Price of the item in */ SELECT TOP (1)
                                                 p.PRICE
                                         FROM dbo.LG_005_01_STLINE AS   p WITH (INDEX (IX_Dave_PRICE))
                                         WHERE p.STOCKREF=e.STOCKREF
                                                 AND p.DATE_<=e.DATE_
                                                 AND p.TRCODE='1'
                                         ORDER BY p.DATE_ DESC
                         ) AS  PRICE
       GROUP BY y.STOCKREF,
             y.TotalStock
       ORDER BY y.STOCKREF;

      SELECT     stok_kodu, stok_ismi, depodaki_miktar, kalan_fifo_deger
FROM         _FIFO
« Son Düzenleme: 17.12.2018, 07:27 Gönderen: odcy2000 »

Çevrimdışı Sofu Ahmed

  • Yeni Kullanıcı
  • *
  • Karma: 0
Aynı gün girişleri mükerrer toplar bilginize, Girişler için bir tek Trcode=1 almışınız, Çıkışlar için bir tek 8 .. Sorgu içinde  "CASE WHEN TRCODE = '8' THEN 0-AMOUNT ELSE AMOUNT END"  böyle bir kurgu var burada 8 ise eksi değilse normal peki 7 numarada çıkış bu sefer sorgu eksi değer mi dönecek ?  Devirler ne olacak ? Fiyat farkları envanterden düşülecek mi ? İade tipleri ne olacak ? İthalat veya İhracat kullanıyorsanız burada ne yapmayı düşünüyorsunuz ? Tanımlı Girişler ve Çıkışlar Dahil olacak sa nasıl bir yol izlenecek ? Birim çevrimleri nasıl olacak ?

Demek istediğim sorgu yazmadan önce veri tabanı yapısını öğrenin yada bayinizden talep edin.

Çevrimdışı odcy2000

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ben öyle ith.ihr. kullanmıyorum. Çok basit bir şekilde stoğum da ne kalmış örneğin 10 bunun 8 tanesi en son aldığım mal, kalan 2 tanesi de bir önceki alışım. miktarlar * alış fiyatları toplamı / elimde kalan miktar = stok maliyetim ben bunu istiyorum.

Çevrimdışı Sofu Ahmed

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ben sadece Logo bu tür işlemlerde dikkat ettiği noktaların bir kısmını bilmenizi istedim. Bayinizden talep edin bayiniz yapamıyorsa veya müsait değil ise logodan arayıp bayi talep edin.  Yukarıda yazdığınız sorgudan bu isteklerinizin çıkması için sorgunun iç tarafı ve bazı alanların değişmesi lazım. Sql sürümünüze göre sorgunun kısalığı ve uzunluğu değişir.
« Son Düzenleme: 17.12.2018, 12:44 Gönderen: ByBirol® »

Çevrimdışı ByBirol®

  • Logo Sistem Administrator
  • Logo Uzmanı
  • *****
  • Karma: 18
  • admin@artibilisim.com Logo Çözüm Ortağı
Ben öyle ith.ihr. kullanmıyorum. Çok basit bir şekilde stoğum da ne kalmış örneğin 10 bunun 8 tanesi en son aldığım mal, kalan 2 tanesi de bir önceki alışım. miktarlar * alış fiyatları toplamı / elimde kalan miktar = stok maliyetim ben bunu istiyorum.

sanırım sorguyu nette buldunuz, amaç ayni olsana programların veri işleme ve listeleme yöntemleri birbirinden farklıdır , bu durumda size ve ürüne özel cozum yapılması gerekir .

Çevrimdışı hyponectia

  • Logo Kullanıcısı
  • **
  • Karma: 0
  • hyponectia.com
Merhabalar,

Ben öyle ith.ihr. kullanmıyorum. Çok basit bir şekilde stoğum da ne kalmış örneğin 10 bunun 8 tanesi en son aldığım mal, kalan 2 tanesi de bir önceki alışım. miktarlar * alış fiyatları toplamı / elimde kalan miktar = stok maliyetim ben bunu istiyorum.


Malzemelerinizde herhangi bir takip sistemi var mı? Spesifik olarak, Malzeme Tablosunda yer alan İzleme ve Sıralama'da izleme yapılmayacak seçili ise, bunu yapmanız zaten neredeyse imkansız. FİFO kullanmanız herhangi takip sistemi olmadan zor. Bunu database tarafından da kontrol edebilirsiniz: ITEMS tablosunda, TRACKTYPE sütunu var, kontrol edebilir misiniz?

Eğer ki bu durum da geçerli değilse, FİFO uygulamak istediğiniz malzemeler için tekrardan stok kartı açarak, açarken de İzleme ve Sıralama bölümünde yer alan seçeneklere dikkat ederek açıp, FİFO için gerekli alt yapıyı sağlayabilirsiniz.

Kolay gelsin.



Çevrimdışı odcy2000

  • Yeni Kullanıcı
  • *
  • Karma: 0
Merhaba ilginize teşekkürler. Herhangi bir takip sistemi kullanmıyoruz. Yukarıda ilk verdiğim bir sorgu var. Mikro da yapmışlar. Gayet güzel çalışıyor. Ancak bunu Go3 uyarlamaya çalışıyorum. Fonksiyonlardan dolayı beceremedim. Ancak yeni bulduğum bir sorgu o da yukarıda netten bulduğum o sorguda fonksiyon yok Go3 uyarladım. Ancak bazı hatalar veriyor. Bakalım halen uğraşıyorum. Belki çözebilirim. İyi çalışmalar,

Çevrimdışı Sofu Ahmed

  • Yeni Kullanıcı
  • *
  • Karma: 0
Merhaba,

Yanılmıyorsam arkadaş İzleme kullanmıyor. Go Plus - Go3  Serilerinde direk gelmiyor, Perakende alınırsa onunla beraber kullanıma açılıyor. 

Fifo Yöntemi (İlk Giren İlk Çıkar) bu yönteme göre sorgu yazılır Tarih,Saat gibi değerlere göre İlk Giren İlk Çıkan yönteme yedirme işlemi yapılır.

Logo'nun maliyet ve envanter taktiğinde Stok Eksiğe düştüğünde hesaba katmaz, Logo Giriş ve Çıkış hareketlerini bazı alarak hesaplama yapmaktadır. Piyasada bunun farklı bir yolu olarak yapanlarda Çıkışları Tek seferde Toplayıp Giriş Hareketlerine Yedirip kalan miktarı Envantere tabi tutuyorlar. Başta demiştim Logonun Envanteri Sizin istediğinizden fazlasını verir.