giriş toplamı - çıkış toplamı değeridir. Hareketler eklenir, değiştirilmez ve silinmez.
Bu sayfa depo kaynağını, stok durumu listesini, hareket kayıtlarını ve stoğu değiştiren dört işlemi anlatır: giriş, düzeltme, transfer ve sayım. Ürün kaynağı için Ürünler sayfasına bakın. Panelde aynı işlemleri nasıl yapacağınız için Depolar, Stoklar ve Stok hareketleri sayfalarına bakın.
Endpoint özeti
Tüm endpoint’lerX-Tenant başlığı ister. Başka kliniğe ait bir depo 404 döner. Başka kliniğe ait ürün veya depo kimliği stok yazma işlemlerinde 422 döner. Başlıklar için Başlıklar sayfasına bakın.
Her stok işleminin izni ayrıdır.
Create:StockMovement tek başına düzeltme, sayım veya transfer yapmaya yetmez. View:StockOverview ile View:StockMovement de birbirini kapsamaz. İzinlerin genel işleyişi için İzinler ve görünürlük sayfasına bakın.Depolar
Depo nesnesi
Listeleme
GET /warehouses sayfalı döner. Genel kurallar için Sayfalama ve Filtreleme ve sıralama sayfalarına bakın.
Oluşturma ve güncelleme
POST /warehouses için yalnızca name zorunludur. PUT /warehouses/{id} aynı alanları kabul eder ve hepsi isteğe bağlıdır.
Varsayılan depo
Varsayılan depo
Bir depoyu
is_default: true ile kaydettiğinizde klinikteki diğer depoların is_default değeri sessizce false olur. Klinikte aynı anda en fazla bir varsayılan depo bulunur.Varsayılan depo; ürün oluştururken verdiğiniz initial_stock_quantity için kullanılır. Klinikte hiç varsayılan depo yoksa Flextell Ana Depo adıyla bir tane oluşturur.Ülke değişince il ve ilçe
Ülke değişince il ve ilçe
Güncellemede
country_id değişir ve city_id ile district_id göndermezseniz bu iki alan null olur.Silme
DELETE /warehouses/{id} depoyu kalıcı olarak siler; geri dönüşüm kutusuna gitmez. Depodaki ürünlerin net miktarı sıfırdan büyükse işlem 422 ve WAREHOUSE_HAS_STOCK koduyla reddedilir. Mesaj: Bu depo kalan stoğu olduğu için silinemez. Önce stoğu başka depoya taşıyın veya düzeltme ile sıfırlayın.
Başarılı yanıt {"message": "Depo başarıyla silindi"} gövdesini taşır.
Stok durumu
GET /stocks/overview her ürün ve depo çifti için güncel bakiyeyi döner. Listede yalnızca o depoda en az bir hareketi olan ürünler görünür. Hiç stok girişi yapılmamış bir ürün-depo çifti listede yer almaz.
Satır alanları
Yanıt yalnızca toplam
balance değerini verir. “7 kutu 4 flakon 9 cc” gibi kutu dökümünü istiyorsanız ürünün paketleme alanlarından kendiniz hesaplayın.
Stok durumu değerleri
Filtreler
Stok hareketleri
Her stok değişikliği bir hareket kaydı bırakır. Satış, fatura iptali, transfer, düzeltme ve sayım da hareket üretir.Hareket nesnesi
reference değeri Fatura #<belge no>, Satış #<id>, Transfer #<id>, Sayım #<id> veya Seans #<id> biçimindedir. Kaynağı olmayan harekette null döner.
Hareket türleri
type süzgecinde usage, usage_return ve waste değerleri de geçerlidir.
Listeleme
GET /stocks/movements sayfalı döner.
Stok girişi
POST /stocks/entry bir ürünü bir depoya purchase hareketiyle ekler. Yanıt 201 ve oluşan hareketi döner.
full girişte toplam miktarı ürünün takip biriminde verirsiniz. partial girişte miktarı kutu, iç birim ve temel birim olarak ayrı ayrı verirsiniz; Flextell bunları ürünün stock_tracking_mode değerine göre toplar. partial girişte üç alanı da göndermelisiniz ve hesaplanan toplam sıfırdan büyük olmalıdır.
Örnek: bir kutuda 5 flakon, bir flakonda 10 cc olan
base_unit ürün için 7 kutu, 4 flakon ve 9 cc girişi 399 cc eder.
Stok düzeltme
POST /stocks/adjustment bakiyeyi elle değiştirir. İki modu vardır. Yanıt 201 ve {"movement": ...} döner.
in_out: Bakiyeyequantitykadar ekler veya düşer. Bakiyeden fazla çıkışINSUFFICIENT_STOCKile reddedilir.correction: Bakiyeyiquantitydeğerine eşitler. 0 verebilirsiniz. Flextell farkı tek biradjustmenthareketi olarak yazar. Bakiye zaten bu değerdeyse hiçbir şey yazılmaz ve yanıt201olupmovementdeğerinullgelir.
Transfer
POST /stocks/transfer bir ürünü iki depo arasında taşır. Flextell bir transfer kaydı ve iki transfer hareketi oluşturur: kaynakta çıkış, hedefte giriş. İkisi de aynı effective_at değerini taşır. Yanıt 201 ve transfer nesnesini döner.
Transfer nesnesi şu alanları taşır:
id, product, source_warehouse, destination_warehouse, quantity, unit_label, user, notes, transferred_at, source_movement, destination_movement, movements[], created_at, updated_at.
Kaynak depodaki bakiye yetmezse 422 ve INSUFFICIENT_STOCK döner. Hedefteki bakiye üst sınırı aşacaksa işlem tamamen geri alınır.
Transferler için ayrı liste veya detay endpoint’i yoktur. Transferleri GET /stocks/movements?type=transfer ile izleyin; reference alanında Transfer #<id> görürsünüz.
Sayım
POST /stocks/count tek bir depodaki birçok ürünü tek istekte sayar. Flextell sayılan miktarı sistemdeki bakiyeyle karşılaştırır ve farkı hareket olarak yazar.
Sayım miktarını yalnızca
boxes, inner_units ve base_units ile verirsiniz. counted_quantity ve üst düzeyde product_id kabul edilmez. items.*.counted_quantity gönderirseniz The counted_quantity field is not supported. Use the partial fields instead. hatası alırsınız.
Her satır şu kurallarla işlenir:
- Üç miktar alanı da yoksa,
nullise veya boşsa satır atlanır. Açık0değeri sayılır. - Ürünün o depoda hiç hareketi yoksa ve sayılan miktar 0’dan büyükse tek bir
initial_stockhareketi yazılır. Sayım kaydı oluşmaz ve yanıttacountdeğerinullolur. - Diğer durumlarda sayım kaydı oluşur. Fark sıfırdan farklıysa bir
counthareketi yazılır: fark pozitifse giriş, negatifse çıkış.
201 olur ve items dizisi döner. Her öğe {count, movement} biçimindedir. Önce başlangıç stoğu satırları, sonra sayım satırları gelir; sıra isteğinizdeki sıra değildir.
Sayım kaydı counted_quantity, system_quantity ve difference (sayılan eksi sistemdeki miktar) alanlarını taşır.
Sayımlar için ayrı liste endpoint’i yoktur. Sonuçları GET /stocks/movements?type=count ile görün; reference alanında Sayım #<id> yazar.
Miktar sınırları
Tüm stok miktarları en fazla 9999999999,9999 olabilir ve en fazla 4 ondalık basamak taşır.boxes ve inner_units sıfır veya pozitif tam sayı olmalıdır. Giriş ve transfer miktarı en az 0,0001’dir. Sonuçtaki bakiye sınırı aşıyorsa istek reddedilir; hata quantity, boxes veya items.{i}.boxes alanı üzerinde bir doğrulama hatası olarak döner.
Stok yazma işlemlerinin tamamı tek işlem olarak çalışır. Hata olursa hiçbir hareket kalmaz.
Hata kodları
Genel hata biçimi için Hatalar ve Hata kodları sayfalarına bakın.
Stok yazma işlemlerinde şu doğrulama mesajları İngilizce gelir:
The product does not belong to the tenant., The warehouse does not belong to the tenant., The boxes field must be empty when a full stock entry is selected., The quantity field must be empty when a partial stock entry is selected., The partial fields must produce a total stock quantity greater than 0.
Satış ve stok ilişkisi
Satışların stoktan düşmesi kliniğin Stok Düşürme Modu ayarına bağlıdır:
Satış kaleminde
warehouse_id yoksa varsayılan depo kullanılır. Düşürme mantığı ve ilgili hata kodları için Satışlar sayfasına bakın.