# Physical inventory counts

> Physical inventory — scope and freeze, count entry, blind count, difference posting with a second signature, recount, cancellation and periodic count.

URL: https://erpdocs.corexlogic.com/en/stok/ekranlar/stok-sayimlari

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](https://erpdocs.corexlogic.com/en/surecler/stok-sayimi).

- **Type:** 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](https://erpdocs.corexlogic.com/en/en/img/screens/stok/sayim-listesi.png)
1. New Count — freezes the scope
2. Scope — category or all products
3. Counted / total lines
4. Count 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

| Status | Meaning | Actions |
|---|---|---|
| **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](https://erpdocs.corexlogic.com/en/en/img/screens/stok/sayim-yeni.png)
1. Warehouse — required
2. Location — all locations if empty
3. Category — includes subcategories
4. ABC class — class stored on the item
5. Summary of the scope to freeze
6. Start Count

| Field | Mandatory | Note |
|---|---|---|
| **Depo** (Warehouse) | Yes | Selected automatically if there is only one warehouse. |
| **Lokasyon** (Storage Location) | No | All storage locations if empty. |
| **Kategori** (Category) | No | Also includes subcategories. All products if empty. |
| **ABC sınıfı** (ABC class) | No | The 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) | No | At 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](https://erpdocs.corexlogic.com/en/en/img/screens/stok/sayim-girisi.png)
1. Scope frozen — no movements for these items
2. Counted — empty = not counted, 0 = none on shelf
3. Book and Difference — approvers only
4. Found Item — goods not on the list
5. Save Entries
6. Complete 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; <kbd>Enter</kbd> 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](https://erpdocs.corexlogic.com/en/en/img/screens/stok/sayim-tamamlandi.png)
1. Second signature — another approver posts
2. Difference summary
3. Book · Counted · Difference
4. Send Back for Recount
5. Post 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](https://erpdocs.corexlogic.com/en/en/img/screens/stok/sayim-fark-kaydet.png)
1. Increase and decrease lines to post
2. Post Difference

The difference is posted with today's date:

| Row | Movement posted |
|---|---|
| Counted > Book Quantity | **Stok Fazlası Düzeltmesi** (Stock Surplus Adjustment; receipt), by the difference |
| Counted &lt; Book Quantity | **Stok Eksiği Düzeltmesi** (Stock Shortage Adjustment; issue), by the difference |
| No difference | No movement |
| Serial number difference | Missing 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](https://erpdocs.corexlogic.com/en/en/img/screens/stok/sayim-kaydedildi.png)
1. Status — document is final
2. Freeze lifted
3. Second signature — who posted and when
4. Difference — 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](https://erpdocs.corexlogic.com/en/en/img/screens/stok/sayim-fark-hareketleri.png)
1. Source document = Stock Count
2. Surplus — receipt
3. Shortage — issue
4. Source — 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

| Situation | Message |
|---|---|
| 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 {#donemsel-sayim}

![Cycle counting](https://erpdocs.corexlogic.com/en/en/img/screens/stok/donemsel-sayim.png)
1. Due — scopes that are due
2. Cycles — 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.

## Related

- [Open a physical inventory count](https://erpdocs.corexlogic.com/en/stok/islemler/stok-sayimi-acma) · [Enter count results](https://erpdocs.corexlogic.com/en/stok/islemler/sayim-girisi-yapma) · [Post the count difference](https://erpdocs.corexlogic.com/en/stok/islemler/sayim-farkini-kaydetme)
