From e0cf11e4ae2dfdd8e0bef5b14ed0590966e3a002 Mon Sep 17 00:00:00 2001 From: Rihards Gailums Date: Tue, 19 May 2026 20:09:38 +0000 Subject: [PATCH] =?UTF-8?q?FG3-4=20executable=20build=20=E2=80=94=20econom?= =?UTF-8?q?ic-settlement=20process?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Upgrades the FG3-4 sub-process from a composition stub to a Level 4 atomic executable: BPMN process Process_SaimnieciskaNorekina (advance request, settlement submission/approval, VPC processing, reconciliation and outcome handling across the Nodarbinatais/Iestade/VPC lanes), DMN decision Decision_AvansaNorekins (FIRST hit policy, advance-vs-expense reconciliation), resource roles/agents/mappings and policies metadata. Transcribed from the Valsts Kase FG3 register sections 3.5.2 and 3.5.4. Validates against the UAPF 2.2.0 schemas and the uapf-cli validator. --- processes/fg3-4/README.md | 73 ++++++++-- .../fg3-4/bpmn/saimnieciska-norekina.bpmn | 134 ++++++++++++++++++ processes/fg3-4/dmn/avansa-norekins.dmn | 74 ++++++++++ processes/fg3-4/metadata/lifecycle.yaml | 5 + processes/fg3-4/metadata/policies.yaml | 18 +++ processes/fg3-4/resources/agents.yaml | 9 ++ processes/fg3-4/resources/mappings.yaml | 90 ++++++++++++ processes/fg3-4/resources/roles.yaml | 11 ++ processes/fg3-4/uapf.yaml | 53 ++++++- 9 files changed, 455 insertions(+), 12 deletions(-) create mode 100644 processes/fg3-4/bpmn/saimnieciska-norekina.bpmn create mode 100644 processes/fg3-4/dmn/avansa-norekins.dmn create mode 100644 processes/fg3-4/metadata/policies.yaml create mode 100644 processes/fg3-4/resources/agents.yaml create mode 100644 processes/fg3-4/resources/mappings.yaml create mode 100644 processes/fg3-4/resources/roles.yaml diff --git a/processes/fg3-4/README.md b/processes/fg3-4/README.md index 4320c1b..bb12a9a 100644 --- a/processes/fg3-4/README.md +++ b/processes/fg3-4/README.md @@ -1,16 +1,73 @@ # FG3-4 — Saimnieciskā norēķina veikšana -Economic settlement: handling of advances, petty-cash and other economic settlements with employees and counterparties. +Level 4 atomic executable process for economic-expense settlement — the +handling of advances and the reconciliation of advances against documented +employee expenses. The second FG3 sub-process taken to executable depth. -- **UAPF level:** L4 (atomic sub-process) +- **UAPF level:** L4 (atomic executable) - **Package id:** `vk.gramatvediba.fg3-4` -- **Source:** Valsts Kase *Grāmatvedības uzskaites procesu apraksts* — FG3 - schema and process register. - **Included by:** `processes/fg3` (function group FG3). +- **Source:** Valsts Kase *Grāmatvedības uzskaites procesu apraksts* — FG3 + process register, section 3.5.2 (*Saimnieciskie norēķini un to kustība*) + and section 3.5.4 (*Avansa atmaksas*). + +## Process + +`bpmn/saimnieciska-norekina.bpmn` (`Process_SaimnieciskaNorekina`) transcribes +the economic-settlement flow across three lanes mapped from the source RACI +columns: + +- **Nodarbinātais** — submits the advance request (3.5.2.1) and the expense + settlement with supporting documents (3.5.2.2). +- **Iestāde** — approves the advance request and the settlement, and informs + the employee of any repayment (3.5.4.2). +- **VPC** — processes the settlement (3.5.2.3), reconciles it, and prepares a + repayment request (3.5.4.1), an additional payment, or posts the document. + +Flow: advance request → approval → settlement submission → approval → VPC +processing → reconciliation decision → one of three outcomes. Two terminating +states: *settlement posted* or *advance repayment requested*. + +## Decision + +`dmn/avansa-norekins.dmn` (`Decision_AvansaNorekins`) is a `FIRST` hit-policy +decision table that sets the outcome variable `norekinResultats` from two +inputs: + +| Input | Values | +|-------|--------| +| `avansaSituacija` | `nav-avansa`, `avanss-lielaks`, `avanss-vienads`, `izdevumi-lielaki` | +| `avansaVeids` | `karte`, `konts`, `nav` | + +Outcomes: `papildu-izmaksa` (no advance, or expenses exceed the advance — +the difference is paid to the employee), `slegts` (advance equals expenses), +`parnesums` (a card advance exceeds expenses — the balance carries forward to +the next period), `atmaksa` (an account advance exceeds expenses — the +difference is repaid). The `Task_NoteiktRezultatu` business-rule task +evaluates it. + +## Resources + +`resources/mappings.yaml` binds every BPMN user task and the DMN decision to a +target in `resources/roles.yaml` / `resources/agents.yaml`. Human steps are +`manual`; the AI agent `agent.norekinu-asistents` is bound `assisted` to the +settlement processing and the reconciliation decision — it extracts document +data and proposes the outcome, the accountant decides. No step is `autonomous`. + +## Transcription note + +The advance request (3.5.2.1) is modelled as the process entry point; in +practice it is optional — an economic settlement may be submitted for expenses +already incurred without a prior advance, a case the decision table covers via +the `nav-avansa` input value. Advance disbursement and the additional payment +themselves are executed in FG2 (payments) and are referenced rather than +duplicated here. Step identifiers use stable BPMN/DMN element ids; +reconciliation against the register `process nr.` numbering is a tracked +follow-up and any schema/register discrepancy is recorded rather than silently +resolved (see `docs/conventions.md`). ## Status -Draft composition placeholder. The sub-process is identified and wired into -FG3 via `includes`; its executable build (BPMN + DMN + resource mappings) -follows in a later step. FG3-1 is the sub-process taken to executable depth in -this proof-of-concept. +Draft. The package is structurally complete and validates against the UAPF +2.2.0 schemas; lifecycle status advances to `review` once the source-numbering +reconciliation is signed off. diff --git a/processes/fg3-4/bpmn/saimnieciska-norekina.bpmn b/processes/fg3-4/bpmn/saimnieciska-norekina.bpmn new file mode 100644 index 0000000..0cf6f59 --- /dev/null +++ b/processes/fg3-4/bpmn/saimnieciska-norekina.bpmn @@ -0,0 +1,134 @@ + + + + + + + Start_NorekinaVajadziba + Task_AvansaPieprasijums + Task_IesniegtNorekinu + + + Task_SaskanotPieprasijumu + Task_SaskanotNorekinu + Task_InformetAtmaksu + + + Task_ApstradatNorekinu + Task_NoteiktRezultatu + Gateway_Rezultats + Task_PieprasitAtmaksu + Task_SagatavotPapilduIzmaksu + Task_Iegramatot + End_Iegramatots + End_AtmaksaPieprasita + + + + + Nodarbinātajam rodas saimniecisko izdevumu (t.sk. medicīnisko izdevumu, obligātās veselības pārbaudes) nepieciešamība. Procesu var, bet tam nav obligāti, ievadīt ar avansa pieprasījumu; norēķins iespējams arī par jau veiktiem izdevumiem bez iepriekšēja avansa. + F1 + + + + Iestādes Nodarbinātais (vai Iestāde Nodarbinātā vārdā) iesniedz avansa pieprasījuma pieteikumu Pašapkalpošanās portālā (HoP lietotnē "Brīvās formas pieteikumi"), norādot pamatojumu un vēlamo summu (finansējumu, ekk). Izmaksa tiek veikta uz Iestādei piesaistīto norēķinu karti vai uz Nodarbinātā algas kontu. Sistēma: Pašapkalpošanās portāls. Procesa solis 3.5.2.1. Avansa izmaksa tiek veikta FG2 maksājumu procesā. + F1 + F2 + + + + Iestāde saskaņo un apstiprina avansa pieprasījumu atbilstoši iepriekš definētai saskaņošanas plūsmai, norādot nepieciešamās dimensijas un finansējumu. Sistēma: Pašapkalpošanās portāls. + F2 + F3 + + + + Iestādes Nodarbinātais iesniedz Pašapkalpošanās portālā (HoP lietotnē "Mani izdevumi") pieteikumu par saimnieciskajiem izdevumiem, pievienojot apliecinošos dokumentus (čekus, kvītis). Ja norēķinā ir ietverta ilgtermiņa nefinanšu aktīva vai krājuma iegāde, norāda noliktavu. Nodarbinātais glabā maksājumu apliecinošos dokumentus ne īsāk par pieciem gadiem (Grāmatvedības likums 28.p.(5)). Sistēma: Pašapkalpošanās portāls. Procesa solis 3.5.2.2. + F3 + F4 + + + + Iestāde saskaņo iesniegto avansa norēķinu atbilstoši definētajai saskaņošanas plūsmai, norādot Iestādei nepieciešamās dimensijas un finansējumu. Sistēma: Pašapkalpošanās portāls. + F4 + F5 + + + + VPC saskaņā ar Horizon projektējumā norādīto ģenerē attiecīgo izdevumu/kreditoru dokumentu. Rezultāts: mainīgie avansaSituacija = "nav-avansa" | "avanss-lielaks" | "avanss-vienads" | "izdevumi-lielaki" un avansaVeids = "karte" | "konts" | "nav". Sistēma: RVS Horizon. SLA: 3 darba dienas no norēķina apstiprināšanas. + F5 + F6 + + + + Automatizēti izvērtē avansa norēķina rezultātu, izpildot lēmumu Decision_AvansaNorekins (dmn/avansa-norekins.dmn). Ievaddati: avansaSituacija, avansaVeids. Rezultāts: mainīgais norekinResultats. + F6 + F7 + + + + F7 + F8 + F9 + F10 + + + + VPC informē Atbalsta sistēmā (Redmine) Iestādi par nepieciešamību veikt avansa atmaksu, ja izmaksātais avanss (uz Nodarbinātā kontu) pārsniedz iesniegtos attaisnojuma izdevumus. Sistēma: RVS Horizon, Atbalsta sistēma (Redmine). Procesa solis 3.5.4.1. + F9 + F11 + + + + Iestāde informē Nodarbināto par avansa atmaksas veikšanu VPC norādītajā bankas kontā. Sistēma: Iestādes sistēma. SLA: 3 darba dienas no pieprasījuma saņemšanas. Procesa solis 3.5.4.2. + F11 + F12 + + + + Ja iesniegtie attaisnojuma izdevumi pārsniedz izmaksāto avansu (vai avanss nav bijis), VPC sagatavo papildu izmaksas priekšlikumu Nodarbinātajam par starpību. Izmaksa tiek veikta FG2 maksājumu procesā uz Nodarbinātā algas kontu. Sistēma: RVS Horizon. + F10 + F13 + + + + VPC iegrāmato saimnieciskā norēķina izdevumu/kreditoru dokumentu grāmatvedības informācijas sistēmā. Ja avanss izmaksāts uz Iestādei piesaistīto norēķinu karti un pārsniedz izdevumus, avansa atlikums tiek saglabāts (pārnests) izlietošanai nākamajā norēķina periodā, izņemot decembra norēķina periodu. Sistēma: RVS Horizon. + F8 + F13 + F14 + + + + F14 + + + + F12 + + + + + + + + + + + + norekinResultats = "atmaksa" + + + norekinResultats = "papildu-izmaksa" + + + + + + + + diff --git a/processes/fg3-4/dmn/avansa-norekins.dmn b/processes/fg3-4/dmn/avansa-norekins.dmn new file mode 100644 index 0000000..9bc99eb --- /dev/null +++ b/processes/fg3-4/dmn/avansa-norekins.dmn @@ -0,0 +1,74 @@ + + + + + + + + Nosaka saimnieciskā avansa norēķina rezultātu, salīdzinot izmaksāto avansu ar iesniegtajiem attaisnojuma izdevumiem un ņemot vērā avansa izmaksas veidu. + + + + + + + + + + + avansaSituacija + + + "nav-avansa","avanss-lielaks","avanss-vienads","izdevumi-lielaki" + + + + + avansaVeids + + + "karte","konts","nav" + + + + + "slegts","atmaksa","papildu-izmaksa","parnesums" + + + + + Avanss nav bijis — izdevumi atlīdzināmi pilnā apmērā kā papildu izmaksa. + "nav-avansa" + - + "papildu-izmaksa" + + + Izdevumi pārsniedz avansu — starpība atlīdzināma kā papildu izmaksa. + "izdevumi-lielaki" + - + "papildu-izmaksa" + + + Avanss vienāds ar izdevumiem — norēķins slēgts bez papildu darbībām. + "avanss-vienads" + - + "slegts" + + + Avanss uz norēķinu karti pārsniedz izdevumus — atlikums pārnests uz nākamo periodu. + "avanss-lielaks" + "karte" + "parnesums" + + + Avanss uz Nodarbinātā kontu pārsniedz izdevumus — starpība atmaksājama. + "avanss-lielaks" + - + "atmaksa" + + + + diff --git a/processes/fg3-4/metadata/lifecycle.yaml b/processes/fg3-4/metadata/lifecycle.yaml index 78c04b2..3a0b57d 100644 --- a/processes/fg3-4/metadata/lifecycle.yaml +++ b/processes/fg3-4/metadata/lifecycle.yaml @@ -2,3 +2,8 @@ kind: uapf.metadata.lifecycle status: draft created: "2026-05-19T00:00:00Z" lastModified: "2026-05-19T00:00:00Z" +changeHistory: + - version: 0.1.0 + date: "2026-05-19" + summary: "Initial executable build — BPMN process, DMN settlement-reconciliation decision and resource mappings." + author: vpc.process-office diff --git a/processes/fg3-4/metadata/policies.yaml b/processes/fg3-4/metadata/policies.yaml new file mode 100644 index 0000000..3821252 --- /dev/null +++ b/processes/fg3-4/metadata/policies.yaml @@ -0,0 +1,18 @@ +kind: uapf.policies +classification: + level: internal + dataCategories: + - financial-records + - employee-data +execution: + requiresApproval: false + auditRequired: true + allowedEnvironments: + - development + - staging + - production +delegation: + allowAgentDelegation: true + maxDelegationDepth: 2 + trustedAgents: + - agent.norekinu-asistents diff --git a/processes/fg3-4/resources/agents.yaml b/processes/fg3-4/resources/agents.yaml new file mode 100644 index 0000000..70fd7d0 --- /dev/null +++ b/processes/fg3-4/resources/agents.yaml @@ -0,0 +1,9 @@ +kind: uapf.resources.agents +agents: + - id: agent.norekinu-asistents + name: Avansa norēķinu apstrādes asistents + type: ai_agent + capabilities: + - capability.document.extract + - capability.policy.lookup + - capability.decision.assist diff --git a/processes/fg3-4/resources/mappings.yaml b/processes/fg3-4/resources/mappings.yaml new file mode 100644 index 0000000..be3d939 --- /dev/null +++ b/processes/fg3-4/resources/mappings.yaml @@ -0,0 +1,90 @@ +kind: uapf.resources.mapping + +targets: + - id: role.nodarbinatais + type: human_role + name: Nodarbinātais (iestāde) + - id: role.atbildigais + type: human_role + name: Atbildīgā amatpersona (iestāde) + - id: role.gramatvedis + type: human_role + name: Grāmatvedis (VPC) + - id: agent.norekinu-asistents + type: ai_agent + name: Avansa norēķinu apstrādes asistents + capabilities: + - capability.document.extract + - capability.policy.lookup + - capability.decision.assist + +bindings: + - source: + type: bpmn.userTask + ref: Task_AvansaPieprasijums + targetId: role.nodarbinatais + mode: manual + notes: "Nodarbinātais iesniedz avansa pieprasījumu Pašapkalpošanās portālā." + + - source: + type: bpmn.userTask + ref: Task_SaskanotPieprasijumu + targetId: role.atbildigais + mode: manual + notes: "Iestādes atbildīgā amatpersona saskaņo avansa pieprasījumu definētajā plūsmā." + + - source: + type: bpmn.userTask + ref: Task_IesniegtNorekinu + targetId: role.nodarbinatais + mode: manual + notes: "Nodarbinātais iesniedz avansa norēķinu un pievieno izdevumus apliecinošos dokumentus." + + - source: + type: bpmn.userTask + ref: Task_SaskanotNorekinu + targetId: role.atbildigais + mode: manual + notes: "Iestādes atbildīgā amatpersona saskaņo izdevumu norēķinu un norāda dimensijas un finansējumu." + + - source: + type: bpmn.userTask + ref: Task_ApstradatNorekinu + targetId: agent.norekinu-asistents + mode: assisted + notes: "Asistents izgūst rekvizītus no apliecinošajiem dokumentiem un sagatavo avansa/izdevumu salīdzinājumu; grāmatvedis apstiprina dokumentu." + + - source: + type: dmn.decision + ref: Decision_AvansaNorekins + targetId: agent.norekinu-asistents + mode: assisted + notes: "Asistents izpilda norēķina rezultāta lēmumu tabulu un sniedz rezultāta priekšlikumu ar pamatojumu." + + - source: + type: bpmn.userTask + ref: Task_PieprasitAtmaksu + targetId: role.gramatvedis + mode: manual + notes: "Grāmatvedis sagatavo avansa atmaksas pieprasījumu Atbalsta sistēmā (Redmine)." + + - source: + type: bpmn.userTask + ref: Task_InformetAtmaksu + targetId: role.atbildigais + mode: manual + notes: "Iestādes atbildīgā amatpersona informē Nodarbināto par avansa atmaksu." + + - source: + type: bpmn.userTask + ref: Task_SagatavotPapilduIzmaksu + targetId: role.gramatvedis + mode: manual + notes: "Grāmatvedis sagatavo papildu izmaksas priekšlikumu par avansu pārsniedzošajiem izdevumiem." + + - source: + type: bpmn.userTask + ref: Task_Iegramatot + targetId: role.gramatvedis + mode: manual + notes: "Grāmatvedis iegrāmato saimnieciskā norēķina dokumentu grāmatvedības informācijas sistēmā." diff --git a/processes/fg3-4/resources/roles.yaml b/processes/fg3-4/resources/roles.yaml new file mode 100644 index 0000000..e94d8e1 --- /dev/null +++ b/processes/fg3-4/resources/roles.yaml @@ -0,0 +1,11 @@ +kind: uapf.resources.roles +roles: + - id: role.nodarbinatais + name: Nodarbinātais (iestāde) + description: Iesniedz avansa pieprasījumu un avansa norēķinu ar izdevumus apliecinošiem dokumentiem. + - id: role.atbildigais + name: Atbildīgā amatpersona (iestāde) + description: Saskaņo un apstiprina avansa pieprasījumu un izdevumu norēķinu; informē Nodarbināto par avansa atmaksu. + - id: role.gramatvedis + name: Grāmatvedis (VPC) + description: Apstrādā un iegrāmato avansa norēķinu, sagatavo avansa atmaksas pieprasījumu vai papildu izmaksas priekšlikumu. diff --git a/processes/fg3-4/uapf.yaml b/processes/fg3-4/uapf.yaml index b8ee5ab..fa6eb90 100644 --- a/processes/fg3-4/uapf.yaml +++ b/processes/fg3-4/uapf.yaml @@ -1,15 +1,60 @@ kind: uapf.package id: vk.gramatvediba.fg3-4 name: "FG3-4 — Saimnieciskā norēķina veikšana" -description: "Economic settlement: handling of advances, petty-cash and other economic settlements with employees and counterparties." +description: "Level 4 atomic executable process: advance requests, submission and approval of economic-expense settlements, VPC processing, advance-vs-expense reconciliation and the resulting repayment, additional payment or carry-forward. The second FG3 sub-process taken to executable depth (BPMN + DMN + resource mappings)." level: 4 version: 0.1.0 includes: [] cornerstones: - bpmn: false - dmn: false + bpmn: true + dmn: true cmmn: false - resources: false + resources: true +paths: + bpmn: bpmn + dmn: dmn + cmmn: cmmn + resources: resources + metadata: metadata +exposure: + mcp: + enabled: true + runnable: true + exposedEntrypoints: + - process: Process_SaimnieciskaNorekina + tool: vk.fg3-4.run + - decision: Decision_AvansaNorekins + tool: vk.fg3-4.evaluate-settlement + exposedArtifacts: + - manifest + - bpmn + - dmn +inputs: + - avansa-pieprasijums + - izdevumu-apliecinosie-dokumenti +outputs: + - iegramatots-norekins + - avansa-atmaksas-pieprasijums + - papildu-izmaksas-priekslikums +artifacts: + bpmn: + - path: bpmn/saimnieciska-norekina.bpmn + role: primary-process + description: "Economic-expense settlement: advance request, settlement submission and approval, VPC processing, reconciliation and outcome handling." + dmn: + - path: dmn/avansa-norekins.dmn + role: routing-decision + description: "Reconciles the advance against documented expenses and sets the settlement outcome." + resources: + - path: resources/roles.yaml + role: roles + description: "Human roles participating in the process." + - path: resources/agents.yaml + role: agents + description: "AI agent declared for assisted steps." + - path: resources/mappings.yaml + role: resource-mapping + description: "Bindings of BPMN tasks and the DMN decision to targets." owners: - type: team id: vpc