Entita Bankovní transakce (BankTransaction)
Entita BankTransaction reprezentuje bankovní transakci (příchozí nebo odchozí platbu) na bankovním účtu. Uchovává informace o částce, datu, protiúčtu, symbolech platby a automaticky se páruje s fakturami v systému.
Klíčové atributy
Základní informace
- Název (
name): Automaticky generovaný název transakce (readonly) - Popis (
description): Textový popis/poznámka transakce (readonly) - Typ transakce (
type): Směr transakce (readonly)Incoming- Příchozí platba (zelená)Outgoing- Odchozí platba (červená)
- Datum transakce (
transactionDate): Datum a čas provedení transakce (readonly)
Finanční údaje
- Částka (
amount): Částka transakce v měně (currency, required, readonly)
Bankovní účet
- Bankovní účet (
bankAccount): Účet, na kterém byla transakce provedena (required, readonly)
Protiúčet
- Název protiúčtu (
counterAccountName): Název majitele protiúčtu (max 150 znaků, readonly) - Číslo protiúčtu (
counterBankAccountNumber): Číslo protiúčtu (bankAccountNumber type, max 30 znaků) - Banka protiúčtu (
counterBank): Banka protiúčtu (link, readonly)
Symboly platby
- Variabilní symbol (
variableSymbol): VS pro párování s fakturami (max 150 znaků, readonly) - Konstantní symbol (
constantSymbol): KS (max 10 znaků, readonly) - Specifický symbol (
specificSymbol): SS (max 15 znaků, readonly)
Typ transakce
- Typ transakce (
transactionType): Způsob platby (default: Bank)Bank- Bankovní převodCard- Kreditní karta
Kartové platby
- Číslo karty (
cardNumber): Číslo platební karty (max 20 znaků, readonly) - Držitel karty (
cardHolder): Jméno držitele karty (max 150 znaků, readonly)
Propojení s fakturami
- Vydaná faktura (
invoice): Propojení s vydanou fakturou (Invoice) - Přijatá faktura (
supplierInvoice): Propojení s přijatou fakturou (SupplierInvoice) - Vydaná zálohová faktura (
proformaInvoice): Propojení s proformou (ProformaInvoice) - Přijatá zálohová faktura (
receivedProformaInvoice): Propojení s přijatou proformou (ReceivedProformaInvoice) - Je přiřazena faktura (
isInvoiceAssigned): Indikátor, zda je transakce spárovaná (bool, notStorable, readonly) - Faktura nenalezena (
invoiceNotFound): Označení, že faktura nebyla nalezena (bool, default: false)- Tooltip: "Označuje transakce, pro které nebyla nalezena nebo jednoznačně určena odpovídající faktura"
Systémová pole
- Foreign ID (
foreignId): ID z bankovního systému (max 150 znaků, readonly) - Z e-mailu (
fromEmail): Propojení se zdrojovým e-mailem (pokud importováno z mailu) - Vytvořeno (
createdAt): Datum a čas vytvoření (readonly) - Upraveno (
modifiedAt): Datum a čas poslední úpravy (readonly) - Vytvořil (
createdBy): Uživatel, který záznam vytvořil (readonly) - Upravil (
modifiedBy): Uživatel, který záznam naposledy upravil (readonly) - Přiřazeno (
assignedUser): Přiřazený uživatel - Týmy (
teams): Týmy s přístupem k záznamu
Technické informace
Backend
Třída entity
- Cesta:
Espo\Modules\Banking\Entities\BankTransaction - Namespace:
Espo\Modules\Banking\Entities - Konstanta:
ENTITY_TYPE = 'BankTransaction'
Definice entity
Soubor: backend/Resources/metadata/entityDefs/BankTransaction.json
Klíčová pole:
{
"type": {
"style": {
"Incoming": "success",
"Outgoing": "danger"
},
"type": "enum",
"readonly": true,
"options": ["Incoming", "Outgoing"],
"displayAsLabel": true,
"default": "Outgoing"
},
"amount": {
"type": "currency",
"readonly": true,
"required": true
},
"bankAccount": {
"type": "link",
"readonly": true,
"required": true
},
"variableSymbol": {
"type": "varchar",
"readonly": true,
"maxLength": 150
},
"transactionType": {
"type": "enum",
"options": ["Bank", "Card"],
"default": "Bank",
"audited": true,
"notNull": true
},
"invoiceNotFound": {
"type": "bool",
"default": false,
"tooltip": true,
"notNull": true
},
"isInvoiceAssigned": {
"type": "bool",
"default": false,
"notStorable": true,
"readOnly": true
}
}
Vazby (links):
bankAccount: belongsTo → BankAccount (foreign: 'bankTransactions')counterBank: belongsTo → Bank (foreign: 'bankTransactions')fromEmail: belongsTo → Email (foreign: 'bankTransactions')invoice: belongsTo → InvoicesupplierInvoice: belongsTo → SupplierInvoiceproformaInvoice: belongsTo → ProformaInvoicereceivedProformaInvoice: belongsTo → ReceivedProformaInvoicecreatedBy: belongsTo → UsermodifiedBy: belongsTo → UserassignedUser: belongsTo → Userteams: hasMany → Team
Indexy:
name: columns: [name, deleted]assignedUser: columns: [assignedUserId, deleted]
Kolekce:
- Výchozí řazení:
createdAt DESC
Frontend
Překlady (cs_CZ)
Soubor: backend/Resources/i18n/cs_CZ/BankTransaction.json
{
"fields": {
"invoice": "Vydaná faktura",
"proformaInvoice": "Vydaná zálohová faktura",
"supplierInvoice": "Přijatá faktura",
"receivedProformaInvoice": "Přijatá zálohová faktura",
"isInvoiceAssigned": "Přiřazeno",
"transactionDate": "Datum transakce",
"constantSymbol": "Konstantní symbol",
"amount": "Celkem bez DPH",
"variableSymbol": "Variabilní symbol",
"counterAccountName": "Název protiúčtu",
"counterBank": "Banka protiúčtu",
"specificSymbol": "Specifický symbol",
"counterBankAccountNumber": "Číslo protiúčtu",
"type": "Typ",
"transactionType": "Typ transakce",
"invoiceNotFound": "Faktura nenalezena"
},
"options": {
"type": {
"Incoming": "Příchozí",
"Outgoing": "Odchozí"
},
"transactionType": {
"Bank": "Bankovní převod",
"Card": "Kreditní karta"
}
},
"tooltips": {
"invoiceNotFound": "Označuje transakce, pro které nebyla nalezena nebo jednoznačně určena odpovídající faktura"
}
}
Použití
Automatické vytváření transakcí
Transakce se vytvářejí automaticky při:
- Stahování z bankovního API: Scheduled job stahuje nové transakce z banky
- Import z e-mailu: Zpracování bankovních výpisů zaslaných e-mailem
- Manuální import: Ruční import z CSV nebo jiného formátu
Párování s fakturami
Systém automaticky páruje transakce s fakturami podle:
Variabilní symbol (VS)
- Pokud VS transakce odpovídá VS na faktuře, transakce se automaticky propojí
- Pro příchozí platby (Incoming):
- Hledá se v Invoice (vydané faktury)
- Hledá se v ProformaInvoice (vydané zálohové faktury)
- Pro odchozí platby (Outgoing):
- Hledá se v SupplierInvoice (přijate faktury)
- Hledá se v ReceivedProformaInvoice (přijaté zálohové faktury)
Pokud faktura není nalezena
- Pole
invoiceNotFoundse nastaví natrue - Transakce se zobrazí ve filtru "Faktura nenalezena"
- Uživatel může manuálně přiřadit správnou fakturu
Workflow párování
1. Nová transakce je importována
2. Systém zkontroluje typ (Incoming/Outgoing)
3. Pokud je vyplněn variableSymbol:
a. Hledá faktury s odpovídajícím VS
b. Kontroluje částku (měla by odpovídat)
c. Kontroluje stav faktury (měla by být vystavena)
4. Pokud je nalezena jediná shoda:
a. Transakce se propojí s fakturou
b. isInvoiceAssigned = true
c. invoiceNotFound = false
5. Pokud není nalezena žádná nebo více shod:
a. invoiceNotFound = true
b. isInvoiceAssigned = false
6. Faktura se označí jako uhrazená (pokud je uhrazena celá částka)
E-mailový import
Pokud je transakce importována z e-mailu:
- Pole
fromEmailobsahuje odkaz na zdrojový e-mail - Umožňuje zpětné dohledání původního výpisu
- Užitečné pro audit a řešení sporů
Readonly vs Editable
Většina polí je readonly, protože:
- Transakce reprezentují data z banky
- Manuální úpravy by mohly způsobit nesoulad s bankovními výpisy
- Ochrana před nechtěnými změnami
Editovatelná pole:
invoiceNotFound- může být manuálně upraveno- Propojení s fakturami - lze manuálně přiřadit/odpojit
assignedUser- lze přiřadit uživateleteams- lze upravit týmy
Doporučené postupy
-
Nenechávejte transakce bez faktury:
- Pravidelně kontrolujte filtr "Faktura nenalezena"
- Manuálně přiřaďte faktury, kde se nepodařilo automatické párování
-
Kontrolujte částky:
- Částka na transakci by měla odpovídat částě faktury
- Rozdíly mohou indikovat problém s VS nebo fakturou
-
Používejte konzistentní VS:
- VS na fakturách by měl být unikátní
- Používejte stejný formát VS napříč systémem
-
Sledujte typ transakce:
- Příchozí = peníze přišly na náš účet = vydané faktury
- Odchozí = peníze odešly z našeho účtu = přijaté faktury
-
Kartové transakce:
- Pro kartové transakce je k dispozici číslo a držitel karty
- Sledujte typ
transactionTypepro reporting
Příklady
Příklad příchozí platby
Typ: Příchozí
Datum transakce: 2024-11-19 10:30:00
Částka: 12,100 CZK
Bankovní účet: Hlavní běžný účet
Variabilní symbol: 2024001
Číslo protiúčtu: 987654-3210987654/0100
Název protiúčtu: ACME s.r.o.
Banka protiúčtu: Komerční banka
Vydaná faktura: #2024001 (automaticky spárováno)
Je přiřazena faktura: ✓
Faktura nenalezena: □
Příklad odchozí platby bez faktury
Typ: Odchozí
Datum transakce: 2024-11-19 14:15:00
Částka: 5,500 CZK
Bankovní účet: Hlavní běžný účet
Variabilní symbol: 123456
Číslo protiúčtu: 111111-2222222222/0800
Název protiúčtu: Dodavatel XYZ
Přijatá faktura: (nepřiřazeno)
Je přiřazena faktura: □
Faktura nenalezena: ✓
Příklad kartové transakce
Typ: Odchozí
Typ transakce: Kreditní karta
Datum transakce: 2024-11-18 18:45:00
Částka: 1,250 CZK
Bankovní účet: Firemní karta
Číslo karty: **** **** **** 1234
Držitel karty: Jan Novák
Popis: Nákup kancelářských potřeb
Poznámky
- Transakce jsou readonly pro zachování integrity dat z banky
- Foreign ID umožňuje prevenci duplicit při opakovaném importu
- Všechny vazby na faktury jsou volitelné (žádná není required)
- Pole
isInvoiceAssignedje vypočítané (notStorable) - vrací true, pokud existuje jakékoli propojení s fakturou