TotalApp Docs

Hasat & Tedarik Envanteri

Depolanan tarım girdilerinden ve kapitalize edilmiş yetişen mahsul WIP partilerinden silo depolamasına ve birleşik malzeme tüketim defterine kadar — girdiden depolamaya finansal hat.

Bu grup ne yapar

Hasat & Tedarik Envanteri, girdiden depolamaya finansal ve fiziksel hattır: tarla kullanımı için depolanan kimyasal/gübre/tohum stoku, kapitalize edilmiş biyolojik varlıklar olarak izlenen yetişen mahsuller, silolarda depolanan hasat edilmiş malzeme ve tek bir tüketim defterinde mutabık kılınan her malzeme/kullanım maliyeti.

Tarım Girdisi Depolama
Yetişen Mahsul Takibi WIP
Silo & Depolama Yönetimi
Tarım Malzeme Tüketimi

Dört ekranın tamamı tek bir servis dosyasını paylaşır: src/services/harvestSupplyInventoryService.ts. Tarla emirleri ve kaynak sayaçları (agroTechExecutionService.ts'ten) tüketimlerini bu grubun sahiplendiği aynı Tarım Malzeme Tüketimi defterine gönderir ve yetişen mahsul WIP partileri hasat sırasında silo kaydına kapitalize olmadan önce o defterle mutabık kalır.

1. Tarım Girdisi Depolama

Amaç: Tarla kullanımı için depolanan gübre, pestisit, tohum/fide ve toprak düzenleyicilerinin eldeki stokunu, son kullanma tarihi ve tehlike takibiyle izlemek.

Öne çıkan özellikler

  • Depolama partisi & SKU kodlarıSTG-2026-XXXX ve SKU-2026-XXXX, kategoriler fertilizers, pesticides, seeds_seedlings, soil_conditioners.
  • DurumcomputeDerivedStatus() tarafından canlı türetilir: son kullanma günü sıfıra ulaştığında expired_quarantined, aksi halde eldeki miktar yeniden sipariş eşiğinde veya altındayken low_stock_alert, aksi halde staged_ready.
  • Son kullanma geri sayım göstergesicomputeDaysToExpiration() son kullanma tarihinden kalan günleri türetir; süresi dolduğunda negatif.
  • MSDS tehlike seviyelerinone, irritant, toxic, highly_toxic_corrosive, artı bir tedarikçi parti numarası ve kimyasal aktif bileşen alanı.
  • Depolama bölgesi/rafı — depolama partisi başına izlenen fiziksel depolama konumu.

Entegrasyon tetikleyicileri

EylemNe yapar
deductStagingStockBir tarla/sera iş emri bir püskürtme veya gübreleme görevini tamamladığında çağrılır; SKU'nun depolama partileri boyunca (önce en yakın son kullanma tarihli) quantityOnHand'ı düşer ve her partinin türetilmiş durumunu yeniden hesaplar.
reconcileWithChemicalAnalyticsDepolama partisinin aktif bileşen profilini eşleşen Tarım-Kimyasal Analitiği kaydına gönderir ve syncedToChemicalAnalytics'i ayarlar — bkz. Kalite & Bitki Sağlığı Operasyonları.
triggerPurchaseOrderReorderKaydın reorderTriggered bayrağını çevirir; bu, defterin Yeniden Sipariş rozetini yönlendirir. Bu eklentide PO'yu daha ileri yönlendirecek bir satın alma/tedarik ekranı henüz yok.

2. Yetişen Mahsul Takibi WIP

Amaç: Aktif bir mahsul döngüsünü ekimden olgunluğa kadar kapitalize edilmiş bir biyolojik varlık (IAS 41) olarak izlemek, girdi maliyetlerini kategoriye göre biriktirmek.

Öne çıkan özellikler

  • WIP parti kodlarıWIP-2026-XXXX, her biri bir Sezon & Hasat Planlama planına bağlı.
  • Maliyet kapitalizasyonu — kategoriye göre bir CapitalizedCostEntry öğeleri listesi: labor (işçilik), irrigation (sulama), fertilizer (gübre), land_usage (arazi kullanımı); accumulatedInputCosts'a ve tahmini bir biyolojik varlık değerine katılır.
  • GDD olgunluk göstergesicomputeMaturityPercent() birikmiş Büyüme Derece Günleri'ni olgunlaşma için hedef GDD ile karşılaştırır.
  • Büyüme aşamalarıgermination → vegetative → flowering → fruiting → harvest_ready.
  • Durumactive_wip, storm_damage_flag, harvest_in_progress.

Entegrasyon tetikleyicileri

EylemNe yapar
syncAccumulatedCostsBu aynı dosyanın kendi Tarım Malzeme Tüketimi defterinden partinin tarla konumu için canlı, mutabık kalınmamış doğrudan gider kayıtlarını okur ve toplam maliyetlerini accumulatedInputCosts'a katar; her tüketim kaydını wipCostsReconciled olarak işaretler.
capitalizeWIPToHarvestHasat tamamlandığında WIP bakiyesini tamamlanmış bir giriş partisine dönüştürür — agroTechExecutionService.ts'teki (bu dosyanın kendi Silo & Depolama Yönetimi kaydına yazan) logInboundStorageBatch'i çağırır ve capitalizedToHarvest'i ayarlar, durum harvest_in_progress.

3. Silo & Depolama Yönetimi

Amaç: Depolanan tahıl ve ürün için toplu silo/depo kapasitesini, durumunu ve karantina durumunu yönetmek.

Öne çıkan özellikler

  • Silo kodlarıSILO-2026-XXXX, depolama koşulları ambient, cold_storage, controlled_atmosphere, dry_depot.
  • Doluluk kapasitesi göstergesicomputeFillPercent() rezerve edilen tonu toplam kapasite tonuna karşı gösterir.
  • Çevresel okumalar — silo başına tahıl nemi (%) ve iç sıcaklık (°C).
  • Havalandırma fanı durumuactive, idle, maintenance_required.
  • Karantina durumuclear, mold_risk_warning, sealed.

Entegrasyon tetikleyicileri

EylemNe yapar
reserveStorageCapacitySezon & Hasat Planlama tarafından hasat planlaması sırasında çağrılır (agroTechExecutionService.ts aracılığıyla yeniden dışa aktarılır); beklenen hasat hacmini silonun reservedTons'ına ekler — bkz. Tarım Teknolojisi Operasyonları.
linkSiloLotToTraceabilityÇiftlikten Sofraya İzlenebilirlik'e bir parti depolama kaydı gönderir; izlenebilirlik partisini fiziksel depolama silosuna bağlar ve siloLotTraceabilityLinked'i ayarlar — bkz. Kalite & Bitki Sağlığı Operasyonları.
triggerAerationMaintenanceagroTechExecutionService.ts'in createMaintenanceWorkOrder'ı üzerinden bir havalandırma fanı bakım iş emri ("Havalandırma Motoru Arızası / Aşırı Isınma") gönderir ve silonun aerationMaintenanceTriggered bayrağını fan durumu maintenance_required ile ayarlar.

Perde arkası — silo kaydı gerçekte nerede yaşıyor

Silo kaydı (SiloRecord) başlangıçta agroTechExecutionService.ts içinde minimal bir yer tutucu olarak sunuldu; bu ekran var olmadan önce Sezon & Hasat Planlama tarafından depolama rezervasyonu için kullanılıyordu. Silo & Depolama Yönetimi çıktığından beri, o kaydın sahipliği harvestSupplyInventoryService.ts'e taşındı — ve agroTechExecutionService.ts artık buradan fetchSiloRegistry, saveSilo, reserveStorageCapacity ve SiloRecord tipini yeniden dışa aktarıyor; böylece Sezon & Hasat Planlama ve Çiftlikten Sofraya İzlenebilirlik'teki mevcut çağıranların değişmesine gerek kalmadı.

4. Tarım Malzeme Tüketimi

Amaç: Eklenti genelindeki her malzeme ve kullanım maliyeti için tek finansal tahsis defteri — kimyasallar, gübreler, su/kullanımlar, güç/elektrik ve yakıt — mevsimlik bir bütçeye karşı izlenir.

Öne çıkan özellikler

  • Tüketim ID'leriAMC-2026-XXXX, kaynak kategorileri chemicals, fertilizers, water_utilities, power_electricity, fuel.
  • Mevsimlik bütçe yakım göstergesicomputeBudgetBurnPercent() gerçek maliyet toplamını hektar başına bütçelenmiş maliyet çarpı hektar sayısıyla karşılaştırır — bütçe aşıldığında %100'ü geçebilir.
  • Mutabakat modalı — manuel ayarlama ve mutabakat notu alanları, artı zaten bir WIP partisine katılmış kayıtları işaretleyen bir wipCostsReconciled bayrağı.
  • Çapraz bağlantı — bir tüketim kaydı linkedWorkOrderId (Tarla/Sera Emirleri), linkedResourceCounterId (Kaynak Sayaçları) veya linkedWipId (Yetişen Mahsul Takibi WIP) taşıyabilir.

Entegrasyon tetikleyicileri

EylemNe yapar
syncAccumulatedCostsYukarıda açıklanan mutabakatın sahiplenen tarafı — bir WIP partisinin konumu için mutabık kalınmamış tüketim kayıtlarını okur ve bu partiye katıldığında wipCostsReconciled olarak işaretler.

Bu defter aynı zamanda agroTechExecutionService.ts'te yaşayan iki fonksiyon için yazma hedefidir: syncOrderMaterialsToConsumption (görev tamamlandığında Tarla/Sera Emirleri'nden çağrılır) ve postResourceToMaterialConsumption (Kaynak Sayaçları'ndan çağrılır) — her ikisi de doğrudan bu depoya yeni tüketim kayıtları yazar. Bu iki fonksiyon için bkz. Tarım Teknolojisi Operasyonları.

Uçtan uca veri akışı

Kaynak ekran / fonksiyonNe yazarHedef ekran / kayıt
Tarım Girdisi Depolama — deductStagingStockEldeki miktarı düşerKendi defteri (Tarla/Sera Emirleri + Tarım-Kimyasal Analitiği tarafından çağrılır)
Tarım Girdisi Depolama — reconcileWithChemicalAnalyticsAktif bileşen profilini güncellerTarım-Kimyasal Analitiği
Tarım Girdisi Depolama — triggerPurchaseOrderReorderreorderTriggered bayrağını ayarlarKendi kaydı (henüz bir tedarik ekranı yok)
Yetişen Mahsul Takibi WIP — syncAccumulatedCostsMutabık kalınmamış tüketim maliyetini WIP'e katarKendi kaydı + Tarım Malzeme Tüketimi
Yetişen Mahsul Takibi WIP — capitalizeWIPToHarvestYeni doğrulanmamış giriş partisiSilo & Depolama Yönetimi kaydı
Silo & Depolama Yönetimi — reserveStorageCapacityreservedTons'u artırırKendi kaydı (Sezon & Hasat Planlama tarafından çağrılır)
Silo & Depolama Yönetimi — linkSiloLotToTraceabilitySiloyu izlenebilirlik partisine bağlarÇiftlikten Sofraya İzlenebilirlik
Silo & Depolama Yönetimi — triggerAerationMaintenanceYeni bakım iş emrimaintenanceWorkOrderService (alan-bağımsız)
Tarla/Sera Emirleri — syncOrderMaterialsToConsumptionStoğu düşer; yeni tüketim kaydıTarım Girdisi Depolama + Tarım Malzeme Tüketimi
Kaynak Sayaçları — postResourceToMaterialConsumptionYeni tüketim kaydı (kullanım kategorisi)Tarım Malzeme Tüketimi

Sıkça Sorulan Sorular

Silo kaydı neden Sezon & Hasat Planlama'nın kendi servis dosyasından taşındı?
Orada hiçbir zaman kendi ekranı olarak yaşamadı — yalnızca depolama rezervasyonu için kullanılan agroTechExecutionService.ts içinde minimal bir yer tutucu depoydu. Silo & Depolama Yönetimi tam bir ekran olarak çıktığında, sahiplik harvestSupplyInventoryService.ts'e taşındı; bu dosya artık aynı fonksiyonları yeniden dışa aktarıyor, böylece hiçbir çağıran kod değişmek zorunda kalmadı.
Depolanan bir girdinin son kullanma tarihi geçtiğinde durumuna ne olur?
computeDerivedStatus(), computeDaysToExpiration() sıfıra veya altına ulaştığında her zaman kaydedilmiş bir durumu geçersiz kılar — kayıt, daha önce kaydedilen herhangi bir durum değerinden bağımsız olarak expired_quarantined olarak ele alınır.
Mevsimlik bütçe yakım göstergesi %100'ü aşabilir mi?
Evet — computeBudgetBurnPercent() üst sınırı olmayan basit bir gerçek maliyet/bütçelenmiş maliyet oranıdır, bu yüzden bütçeyi aşan bir tarla %100'ün üzerinde bir yüzde gösterir.
Depolanan bir girdide "Yeniden Sipariş" rozetini ne tetikler?
triggerPurchaseOrderReorder, depolama kaydında doğrudan bir reorderTriggered bayrağı ayarlar. Bu eklentide gerçek bir PO'yu yönlendirecek bir satın alma/tedarik ekranı henüz yok — bayrak, defterin rozetinin okuduğu yerel, gerçek bir bildirimdir.
Bir Yetişen Mahsul WIP partisi biriken maliyetlerini nasıl mutabık kılar?
syncAccumulatedCosts, partinin tarla konumu için henüz wipCostsReconciled olarak işaretlenmemiş Tarım Malzeme Tüketimi kayıtlarını okur, toplam maliyetlerini partinin accumulatedInputCosts'una toplar ve bir sonraki senkronizasyonda çift sayılmaması için her kaynak kaydı mutabık kılınmış olarak işaretler.
Bir WIP partisi hasat edildiğinde kapitalize edilen maliyetlerine ne olur?
capitalizeWIPToHarvest partiyi harvest_in_progress'a geçirir ve Silo & Depolama Yönetimi kaydına doğrulanmamış bir giriş partisi kaydeder — kapitalize edilen maliyet geçmişinin kendisi, o biyolojik varlığın muhasebe izi olarak WIP kaydında kalır.