Skip to main content

Physical inventory counts

Physical counting and posting the difference to the ledger with a second signature. The moment a count is opened, its scope is frozen: until the count is posted or cancelled, no delivery, goods receipt, production or adjustment can be posted for those items. End-to-end example: Physical inventory process.

Screen
Module
Inventory
Menu path
Stok Yönetimi › Fiziksel Envanter › Stok Sayımları · Dönemsel Sayım (Inventory Management › Physical Inventory › Physical Inventory Counts · Periodic Count)
Screen route
/erp/inventory/counts
Required permission
erp-inventory-counts.view (görme) · .create (Yeni Sayım, Sayımı İptal Et, dönemsel Sayım Aç)
erp-inventory-counts.edit (sayım girişi, Bulunan Ürün, Okutarak Say, Sayımı Tamamla)
erp-inventory-counts.approve (Defter ve Fark kolonları, Farkı Kaydet, Yeniden Saymaya Gönder, sayım döngüsü kuralları)

List​

Stock counts list
  1. 1New Count — freezes the scope
  2. 2Scope — category or all products
  3. 3Counted / total lines
  4. 4Count document

Columns: Sayım No (Count No.; SAY-yyyy-nnnnnn), Durum (Status), Depo (Warehouse; warehouse / storage location), Kapsam (Scope; "Bütün ürünler" (All products) if empty), Sayım Günü (Count Day), Sayılan (Counted; counted rows / total rows), Açan (Opened By), Kaydedildi (Posted). Filters: Ara (Search; count no., category, description), Durum (Status), Sorumlu olduğum depolar (Warehouses I manage). Row menu Sayımı Aç (Open Count).

Statuses​

StatusMeaningActions
Sayımda (Counting)The scope is frozen; quantities are being entered.Girişleri Kaydet (Save Entries), Sayımı Tamamla (Complete Count; once all rows have been counted), Bulunan Ürün (Found Item), Okutarak Say (Count by Scanning), Sayımı İptal Et (Cancel Count)
Sayım Tamamlandı (Count Completed)The count is finished; the difference is awaiting posting.Farkı Kaydet (Post Difference), Yeniden Saymaya Gönder (Send for Recount; → Sayımda (Counting)), Sayımı İptal Et (Cancel Count)
Kaydedildi (Posted)The difference has been posted to the ledger; the freeze is lifted. The document does not change.—
İptal Edildi (Cancelled)Nothing was posted to the ledger; the freeze is lifted.—

There is no "Taslak" (Draft) status. No separate recount document is opened; Yeniden Saymaya Gönder (Send for Recount) returns the same document to Sayımda (Counting).

New Physical Inventory Count​

New stock count dialog
  1. 1Warehouse — required
  2. 2Location — all locations if empty
  3. 3Category — includes subcategories
  4. 4ABC class — class stored on the item
  5. 5Summary of the scope to freeze
  6. 6Start Count
FieldMandatoryNote
Depo (Warehouse)YesSelected automatically if there is only one warehouse.
Lokasyon (Storage Location)NoAll storage locations if empty.
Kategori (Category)NoAlso includes subcategories. All products if empty.
ABC sınıfı (ABC class)NoThe class written on the item (ABC Analizi › Karta Yaz (ABC Analysis › Write to Item)); an item without a class is not included in a class-based count and is not frozen.
Açıklama (Description)NoAt most 1024 characters.

There is no count date field — the count day is the server's current date. A summary of the "Donacak kapsam" (Scope to be frozen) is shown at the bottom of the dialog. Sayımı Başlat (Start Count) opens the document in the Sayımda (Counting) status and brings in the balance rows with stock in the scope as count rows. A second open count that overlaps the same shelf cannot be opened.

Count entry​

Counting — entering counted quantities
  1. 1Scope frozen — no movements for these items
  2. 2Counted — empty = not counted, 0 = none on shelf
  3. 3Book and Difference — approvers only
  4. 4Found Item — goods not on the list
  5. 5Save Entries
  6. 6Complete Count — when every line is counted
  • Banner: "Kapsam donduruldu ({tarih saat}): {DEPO} / {LOK} · {kapsam}. …" (Scope frozen ({date time}): {WAREHOUSE} / {LOC} · {scope}. …)
  • The Sayım Satırları · x / y sayıldı (Count Rows · x / y counted) table: #, Ürün (Product), Lokasyon (Storage Location), Stok Durumu (Stock Status), Lot (Batch), Defter (Book Quantity), Sayılan (Counted), Fark (Difference), Sayan (Counted By).
  • The quantity is entered in the base unit in the Sayılan (Counted) cell; Enter moves down one row. Empty = not counted, 0 = not on the shelf. On a serial-managed row, the serial numbers found are entered in the Seri Gir (Enter Serial Numbers) dialog.
  • Blind count: the Defter (Book Quantity) and Fark (Difference) columns are never sent to a user without the approval permission.
  • Bulunan Ürün (Found Item): a new row for goods that are not in the ledger but were found on the shelf (Ürün (Product), Lokasyon (Storage Location), Stok Durumu (Stock Status), Lot (Batch), Seriler (Serial Numbers), Sayılan (Counted)). A found row can be deleted from the action menu; a row that came from the ledger cannot be deleted.
  • Okutarak Say (Count by Scanning): select the storage location and stock status, then scan a label or barcode; a serial number label brings in the serial number, and a product barcode prompts for the quantity (a carton barcode is counted by carton).
  • The Sayılmayanlar (Not counted) and Farklılar (With differences) toggles filter the rows.
  • Girişleri Kaydet (Save Entries) saves what has been entered; Sayımı Tamamla (Complete Count) first saves any unsaved entries, and is disabled until all rows have been counted ("{n} satır sayılmadı" ({n} rows not counted)).

Difference posting (second signature)​

Count completed — awaiting difference posting
  1. 1Second signature — another approver posts
  2. 2Difference summary
  3. 3Book · Counted · Difference
  4. 4Send Back for Recount
  5. 5Post Difference — writes stock adjustments

In the Sayım Tamamlandı (Count Completed) status, the approver sees the difference ("Fazla a · eksik b · farksız c satır" (Surplus a · shortage b · no difference c rows)) and posts it to the ledger with Farkı Kaydet (Post Difference). Second signature: the person who entered quantities in this count or completed the count cannot post the difference.

Post difference dialog
  1. 1Increase and decrease lines to post
  2. 2Post Difference

The difference is posted with today's date:

RowMovement posted
Counted > Book QuantityStok Fazlası Düzeltmesi (Stock Surplus Adjustment; receipt), by the difference
Counted < Book QuantityStok Eksiği Düzeltmesi (Stock Shortage Adjustment; issue), by the difference
No differenceNo movement
Serial number differenceMissing serial numbers are issued, surplus serial numbers are received

The source document of the movements is "Stok Sayımı" (Physical Inventory Count), and their description is the count number; no movement reason is assigned. After posting, the freeze is lifted and the document becomes Kaydedildi (Posted). If a shortage occurs in allocated stock, posting is rejected — release the allocation first.

Demo example: the difference of SAY-2026-000001 was posted by Demo Onaylayıcı (Demo Approver), not by Demo Kullanıcı (Demo User), who entered and completed the count. The top of the document reads "Fark deftere yazıldı. Belge artık değişmez." (The difference has been posted to the ledger. The document no longer changes.); the Farkı Kaydeden (Difference Posted By) field shows the person who posted it and the date, and the Defter (Book Quantity), Sayılan (Counted) and Fark (Difference) columns remain on the document.

Count posted — difference written to the ledger
  1. 1Status — document is final
  2. 2Freeze lifted
  3. 3Second signature — who posted and when
  4. 4Difference — turned into adjustments

In Stok Hareketleri (Stock Movements), the filter Kaynak Belge = Stok Sayımı (Source Document = Physical Inventory Count) lists the adjustments; the Kaynak (Source) column shows "Stok Sayımı #1", and the movement details show SAY-2026-000001 in Açıklama (Description) and the Belge satırı (Document line; the count row).

Stock Movements — count difference adjustments
  1. 1Source document = Stock Count
  2. 2Surplus — receipt
  3. 3Shortage — issue
  4. 4Source — the count document

In the Sayımı İptal Et (Cancel Count) dialog, Gerekçe (Reason) is mandatory (at most 512 characters); nothing is posted to the ledger, and the entered counts remain on the document.

Rejection messages​

SituationMessage
Overlapping open count"Bu kapsamla çakışan açık bir sayım var: {no}. Aynı rafı iki sayım birden donduramaz — önce onu kaydedin ya da iptal edin." (There is an open count that overlaps this scope: {no}. Two counts cannot freeze the same shelf — first post or cancel that one.)
No items in scope"'{yol}' kategorisinde stok ürünü yok — sayılacak bir şey yok." (Category '{yol}' has no stock items — there is nothing to count.)
Scope without classes"{X} sınıfında ürün yok — önce ABC Analizi'nden sınıfları karta yazın." (There are no items in class {X} — first write the classes to the items from ABC Analizi (ABC Analysis).)
Inactive warehouse/storage location"'{kod}' deposu pasif — sayım açılamaz." (Warehouse '{kod}' is inactive — no count can be opened.) · "'{kod}' lokasyonu pasif — sayım açılamaz." (Storage location '{kod}' is inactive — no count can be opened.)
Movement for a frozen item"'{kod}' kartı '{depo}' deposunda sayımda ({sayım no}) — sayım kaydedilene ya da iptal edilene kadar stok hareketi yazılamaz." (Item '{kod}' is being counted in warehouse '{depo}' ({sayım no}) — no stock movement can be posted until the count is posted or cancelled.)
Row not counted"{n} satır sayılmadı. Sayılmayan satır "yok" demek değildir — rafta yoksa sıfır girin." ({n} rows not counted. A row that has not been counted does not mean "none" — if it is not on the shelf, enter zero.)
Negative quantity"Satır {n}: sayılan miktar negatif olamaz." (Row {n}: the counted quantity cannot be negative.)
Serial number count"Satır {n}: sayılan miktar seri adedine eşit olmalı (seri: a, miktar: b)." (Row {n}: the counted quantity must equal the number of serial numbers (serial numbers: a, quantity: b).)
Duplicate row"'{kod}' için aynı lokasyon, stok durumu ve lotta zaten bir satır var — o satırın sayılan miktarını güncelleyin." (A row already exists for '{kod}' with the same storage location, stock status and batch — update the counted quantity of that row.)
Item outside the scope"'{kod}' bu sayımın kapsamında değil ({kapsam})." ('{kod}' is not within the scope of this count ({kapsam}).)
Deleting a ledger row"Satır {n} defterden geldi — silinemez. Rafta yoksa sıfır sayın." (Row {n} came from the ledger — it cannot be deleted. If it is not on the shelf, count zero.)
Second signature"Sayımı tamamlayan kişi farkı kaydedemez — ikinci imza başka bir kullanıcıdan gelmeli." (The person who completed the count cannot post the difference — the second signature must come from another user.) · "Bu sayımda miktar giren kişi farkı kaydedemez — ikinci imza başka bir kullanıcıdan gelmeli." (The person who entered quantities in this count cannot post the difference — the second signature must come from another user.)
Ledger changed during the count"Sayım açıldıktan sonra şu satırların defter miktarı değişti: … . Sayımı iptal edip yeniden açın." (The book quantity of the following rows changed after the count was opened: … . Cancel the count and open it again.)
Status error"{eylem}: sayım '{durum}' durumunda." ({action}: the count is in status '{durum}'.) (e.g. "Fark kaydedilemez: sayım 'Sayımda' durumunda." (The difference cannot be posted: the count is in status 'Sayımda' (Counting).))
Cancellation reason"İptal gerekçesi zorunludur." (A cancellation reason is mandatory.)

Periodic Count​

Cycle counting
  1. 1Due — scopes that are due
  2. 2Cycles — interval per warehouse/category/ABC

Stok Yönetimi › Fiziksel Envanter › Dönemsel Sayım (Inventory Management › Physical Inventory › Periodic Count). A count interval is defined per warehouse, category and ABC class; the count for a scope that is due is opened from here (counts are not opened automatically).

  • The Sayım Döngüleri (Count Cycles) tab: Yeni Kural (New Rule) — Depo (Warehouse; mandatory), Kategori (Category; default "Bütün depo" (Entire warehouse)), ABC sınıfı (ABC class), Aralık (gün) (Interval (days); mandatory, 1–3650, default 30; calendar days from the last posted count), Not (Note), Aktif (Active). The scope of a saved rule does not change.
  • The Sayımı Gelenler (Due for Count) tab: Kapsam (Scope), Aralık (Interval), Son Sayım (Last Count), Sonraki Vade (Next Due), Durum (Status: Hiç sayılmadı · Vadesi geçti · Vadesi bugün · N gün sonra · Sayımda (Never counted · Overdue · Due today · In N days · Counting)). The Sayım Aç (Open Count) button opens the New Physical Inventory Count dialog with the scope prefilled.