Číselníky - verisoftCZ/verisoft-framework GitHub Wiki

#Základní informace

Pro správu a používání číselníků používáme CodebookApi.

  • Každý číselník má vlastní databázovou tabulku
  • Každý číselník má vlastní controller
  • Implementace nového číselníku je jednoduchá
  • Číselník může být jednoduchý (pouze key/value) nebo komplexní (key/value + další vlastnosti)
  • Číselníky podporují multitenant prostředí
  • Klíčem číselníkové hodnoty (Record) je "StringValue"
  • Jedna StringValue může být v tabulce vícekrát, pokud má některý tenant rozdílné hodnoty dalších vlastností (příklad 1)
  • Číselníky podporují překlady, které nejsou závislé na tenantovi
  • Record může být pro některého tenanta "Forbidden" a v tu chvíli by se neměl pro daného tenanta již nabízet
  • Delete pouze nastavuje Record na isForbidden pro všechny tenanty

Příklad 1:

Číselník sazeb DPH

StringValue TenantId Description VatRate
Standard 1 (CZ) Standard VAT rate 21
Standard 2 (SK) Standard VAT rate 20

#Struktura contractu a význam jednotlivých propert

Příklad Country globální záznam

{
  "stringValue": "Czechia",                    // identifikátor číselníkové hodnoty (hodnota Enumu)
  "description": "Czech Republic",             // popis
  "defaultAdditionalProperties": {             // další vlastnosti komplexní číselníkové hodnoty pro defaultní záznam (pro tenanty, kteří nemají specifické hodnoty - záznam který je vytvořen s těmito defaultAdditionalProperties může být vázán na více tenantů)
    "isoAlpha2": "CZ",                         // ISO kód země ve formátu alpha 2
    "isoAlpha3": "CZE",                        // ISO kód země ve formátu alpha 3
    "isoNumeric3": "204"                       // ISO kód země ve formátu num 3
  },
  "tenantValues": [                            // kolekce specifických hodnot pro jednotlivé tenanty (dále upřesněno v článcích globální záznam a lokální záznam), tento konkrétní záznam znamená, že pro tenanta 5 je tato číselníková hodnota zakázána a tak by se neměla hodnota pro Českou republiku nabízet
    {
      "isoAlpha2": "CZ",
      "isoAlpha3": "CZE",
      "isoNumeric3": "204",
      "isForbidden": true,                     // označení, zda je pro daného tenanta tato číselníková hodnota (Czechia) zakázána
      "tenantId": 5,                           // id tenanta
    }
  ],
  "translations": [                            // kolekce překladů
    {
      "languageId": 1,                         // id jazyka (1 je default language, který musí být vždy nastaven - fallback, pokud neexistuje překlad pro požadovaný jazyk)
      "translationValue": "Czech Republic",    // hodnota překladu
    },
    {
      "languageId": 2,                         
      "translationValue": "Česká republika",   
    },
    {
      "languageId": 3,                         
      "translationValue": "Czechia",   
    }
  ],
}
⚠️ **GitHub.com Fallback** ⚠️