LivaDocs

LivaMonthAdjustPopup

Dataliva'ya özgü, 12 aylık bütçe satırındaki değerleri toplu olarak artırıp azaltmaya yarayan popup. Bir satır ve ay kolonu için createMonthAdjustSession ile oturum oluşturulur; popup her ay için mevcut tutarı ve düzenlenebilir bir ayar kolonu gösterir. Uygula düğmesi taslak değerleri onApply ile geri verir, yeni tutarlar applyMonthAdjustSession ile hesaplanır. İki mod vardır:

  • cumulative — satırdaki tüm aylar listelenir; varsayılan ayar tipi percent'tir (100 = değişiklik yok, 110 = yüzde 10 artış).
  • single — yalnızca tıklanan ayın satırı listelenir; varsayılan ayar tipi amount'tır (0 = değişiklik yok, pozitif/negatif tutar eklenir).
import {
  LivaMonthAdjustPopup,
  createMonthAdjustSession,
  applyMonthAdjustSession,
  sumMonthValues,
  STANDARD_MONTH_FIELDS,
  type MonthAdjustSession,
  type LivaMonthAdjustSummaryField,
} from "@dataliva/livalib";

Kümülatif yüzde ayarı

Düğmeye tıklayınca 12 ayın tamamı için yüzde bazlı ayar oturumu açılır. Örneğin bir aya 110 yazıp uyguladığınızda o ayın tutarı yüzde 10 artar; 100 bırakılan aylar değişmez. summaryFields popup başlığının altında hesap/departman gibi satır bilgilerini rozet olarak gösterir (stripLeadingAccountCode baştaki "770 -" benzeri hesap kodunu ayıklar).

Kümülatif yüzde ayarı
Önizleme yükleniyor…

Tek ay tutar ayarı

mode: "single" yalnızca columnField ile verilen ayı düzenler; girilen tutar mevcut değere eklenir (negatif değer azaltır). Gerçek uygulamada bu oturum, grid hücresinin sağ tık menüsünden tıklanan kolona göre açılır.

Tek ay tutar ayarı
Önizleme yükleniyor…

Yardımcı fonksiyonlar

Popup, utils/monthAdjust modülündeki yardımcılarla birlikte çalışır; tümü paket kökünden dışa aktarılır:

Fonksiyon / SabitAçıklama
STANDARD_MONTH_FIELDSStandart ay alanları: ["V001", "V002", …, "V012"]
MONTH_FIELD_PATTERNAy alanı deseni: /^[vV]\d{3}$/
createMonthAdjustSession(params)Satır, kolon ve moddan MonthAdjustSession üretir
applyMonthAdjustSession(session, monthFields)Taslak değerlerden alan → yeni tutar haritası hesaplar
sumMonthValues(rowData, monthFields, updates)Güncellemeler uygulanmış yıllık toplamı verir
getAffectedMonthIndices(mode, columnField, monthFields)Moda göre etkilenecek ay indekslerini verir
getDefaultMonthAdjustDraftValues(adjustType)Başlangıç taslağı: percent için 100, amount için 0
getRowFieldValue(row, fieldName)Alan adını büyük/küçük harf duyarsız çözerek değeri okur
resolveMonthFieldsFromColumns(columns)Grid kolon tanımlarından ay alanlarını çıkarır

LivaDataGrid bileşeni bu akışı monthAdjustOptions prop'uyla hazır olarak sunar; bu sayfadaki gibi elle oturum yönetimi yalnızca özel senaryolarda gerekir.

MonthAdjustSession

type MonthAdjustSession = {
  rowId: string;
  rowData: Record<string, unknown>;
  columnField: string;            // oturum oluşturulurken büyük harfe çevrilir
  mode: "single" | "cumulative";
  adjustType: "percent" | "amount";
  draftValues: number[];          // 12 elemanlı taslak dizisi
};