E-POWER · System & Integrationsប្រព័ន្ធ និងការតភ្ជាប់

System & Integrationsប្រព័ន្ធ និងការតភ្ជាប់

Startup, database migrations, the release pipeline, security, configuration, localization and the accounting bridge. ការចាប់ផ្តើម Migration ការចេញផ្សាយកំណែ សុវត្ថិភាព ការកំណត់ ភាសា និងស្ពានគណនេយ្យ។

1. Application startupការចាប់ផ្តើមកម្មវិធី

  1. Environment & connectionបរិយាកាស និងការតភ្ជាប់ Systemប្រព័ន្ធ
    Skin, Khmer font, culture from the saved language; the encrypted connection profile is decrypted and service URLs resolved. រូបរាង ពុម្ពអក្សរខ្មែរ ភាសាដែលរក្សាទុក; ការតភ្ជាប់អ៊ិនគ្រីបត្រូវឌិគ្រីប និង URL សេវាកំណត់។
  2. Windows servicesសេវា Windows
    MSDTC (distributed transactions) auto-starts, elevating to admin if needed. MSDTC ចាប់ផ្តើមស្វ័យប្រវត្តិ ដោយស្នើសិទ្ធិ Admin បើចាំបាច់។
  3. DB migrationsMigration មូលដ្ឋានទិន្នន័យ
    The version chain runs one by one; each compares itself to the DB VERSION, applies its SQL in one transaction, then stamps the new version. ខ្សែកំណែដំណើរការម្តងមួយ; នីមួយៗប្រៀបធៀបនឹង VERSION ក្នុង DB អនុវត្ត SQL ក្នុងប្រតិបត្តិការមួយ រួចកត់កំណែថ្មី។
  4. Auto-update check → loginពិនិត្យបច្ចុប្បន្នភាព → ចូលប្រើ
    See the release flow below; an unreachable update service is skipped so offline sites keep working. Then the login dialog opens. មើលដំណើរការចេញផ្សាយខាងក្រោម; បើសេវាមិនអាចទាក់ទងបាន ត្រូវរំលង ដើម្បីឲ្យទីតាំងគ្មានអ៊ីនធឺណិតដំណើរការបាន។ បន្ទាប់មកផ្ទាំងចូលប្រើបើក។

2. Release & auto-updateការចេញផ្សាយ និងបច្ចុប្បន្នភាពស្វ័យប្រវត្តិ

  1. Build & versionBuild និងកំណែ Developerអ្នកអភិវឌ្ឍ
    The newest migration class defines the app's version identity; registered in the updater chain, project file and AssemblyInfo. Class Migration ថ្មីបំផុត កំណត់អត្តសញ្ញាណកំណែកម្មវិធី; ចុះក្នុងខ្សែ Updater ឯកសារគម្រោង និង AssemblyInfo។
  2. Package the zipវេចខ្ចប់ Zip
    v7.x.y.z.zip with the changed binaries at the zip root (password 123): EPower.exe, EPower.Base.dll, plus config/reports when changed. v7.x.y.z.zip ដាក់ Binary ដែលផ្លាស់ប្តូរនៅ Root (ពាក្យសម្ងាត់ 123)៖ EPower.exe, EPower.Base.dll និង config/report បើផ្លាស់ប្តូរ។
  3. Publish to the updater serviceផ្សាយទៅសេវា Updater
    Upload the zip, create the version, point the licensee ceiling (NA = all condo sites) at it. Upload Zip បង្កើតកំណែ រួចចង្អុលពិដាន Licensee (NA = គ្រប់ទីតាំងខុនដូ) ទៅវា។
  4. Clients update at startupកម្មវិធីអតិថិជនធ្វើបច្ចុប្បន្នភាពពេលបើក Every siteគ្រប់ទីតាំង
    Newer versions force the update (declining exits); all intermediate zips download and apply oldest→newest, the app relaunches, and the new exe runs its DB migrations. កំណែថ្មីបង្ខំធ្វើបច្ចុប្បន្នភាព (បដិសេធ = បិទកម្មវិធី); Zip កណ្តាលទាំងអស់ទាញ និងអនុវត្តតាមលំដាប់ កម្មវិធីបើកឡើងវិញ ហើយ EXE ថ្មីដំណើរការ Migration។

Conditionsលក្ខខណ្ឌ

  • Per-site gating uses a unique licensee matching the site's AREA_CODE; never overwrite a non-blank AREA_CODE on a prepaid site (it's burned into the smart-cards). ការកំណត់តាមទីតាំង ប្រើ Licensee ត្រូវនឹង AREA_CODE; កុំសរសេរជាន់ AREA_CODE នៅទីតាំងបង់មុន (វានៅក្នុងកាត)។
  • If the exe version is older than the DB version, the app locks until updated. បើកំណែ EXE ចាស់ជាង DB កម្មវិធីជាប់សោរហូតដល់ធ្វើបច្ចុប្បន្នភាព។

3. Security & sessionsសុវត្ថិភាព

ConcernចំណុចMechanismយន្តការ
User login & permissionsចូលប្រើ និងសិទ្ធិSoftTech security — role/permission checks on every sensitive buttonSoftTech Security — ពិនិត្យសិទ្ធិលើប៊ូតុងសំខាន់ៗទាំងអស់
Cashier shiftវេនអ្នកគិតលុយMoney actions require an open cash drawerប្រតិបត្តិការប្រាក់ត្រូវការកេះដាក់ប្រាក់បើករួច
Backend API authសុវត្ថិភាព APIKeycloak service-account token, auto-refreshedToken Keycloak បន្តជាថ្មីស្វ័យប្រវត្តិ
Secretsព័ត៌មានសម្ងាត់Service URLs/credentials AES-encrypted in the utility table; SQL connection encrypted in user settingsURL/គណនី អ៊ិនគ្រីប AES ក្នុងតារាងកំណត់; ការតភ្ជាប់ SQL អ៊ិនគ្រីបក្នុងការកំណត់អ្នកប្រើ

4. Configuration layersស្រទាប់ការកំណត់

Layerស្រទាប់Storeកន្លែងរក្សាExamplesឧទាហរណ៍
System utilitiesការកំណត់ប្រព័ន្ធTBL_UTILITYFeature flags, service URLs, cut-off amount/days, DB VERSIONមុខងារ URL សេវា ចំនួន/ថ្ងៃផ្តាច់ចរន្ត VERSION
Per-user settingsតាមអ្នកប្រើSettings.settingsLanguage, printers, report template, encrypted connectionsភាសា ម៉ាស៊ីនបោះពុម្ព គំរូរបាយការណ៍ ការតភ្ជាប់អ៊ិនគ្រីប
Per-customer settingsតាមអតិថិជនTBL_CUSTOMER_SETTINGPrint bill, digital bill participationបោះពុម្ពវិក្កយបត្រ វិក្កយបត្រឌីជីថល
Grid layoutsប្លង់តារាងTLKP_FILTER_OPTIONSaved report templatesគំរូរបាយការណ៍រក្សាទុក

5. Localizationភាសា

Khmer is the default; English lives in the en-GB resources — new strings are added to both. Embedded pages re-translate at runtime; Crystal Reports resolve from a language-suffixed folder. ខ្មែរជាលំនាំដើម; អង់គ្លេសនៅក្នុងធនធាន en-GB — អក្សរថ្មីត្រូវបន្ថែមទាំងពីរ។ ទំព័រ​បកប្រែឡើងវិញពេលដំណើរការ; Crystal Reports ផ្ទុកពីថតតាមភាសា។

6. Accounting push (Pointer ERP)ការបញ្ជូនគណនេយ្យ (Pointer ERP)

  1. Triggerចាប់ផ្តើម Backgroundផ្ទៃខាងក្រោយ
    After bill runs and from the main pages, posting runs when Pointer is connected. ក្រោយចេញវិក្កយបត្រ និងពីទំព័រមេ ការបញ្ជូនដំណើរការពេល Pointer ភ្ជាប់។
  2. Guarded windowចន្លោះការពារ
    Posting clamps to dates after the last opening balance so closed periods are never re-posted. បញ្ជូនតែក្រោយសមតុល្យបើកចុងក្រោយ ដើម្បីកុំបញ្ជូនរយៈពេលបិទរួចម្តងទៀត។
  3. Push in orderបញ្ជូនតាមលំដាប់
    Invoices → Payments → Deposits → Prepayments → Adjustments → Bills, each building journal entries mapped to Pointer accounts per currency. វិក្កយបត្រ → ការបង់ប្រាក់ → តម្កល់ → បង់មុន → កែសម្រួល → វិក្កយបត្រទិញ ដោយបង្កើតបញ្ជីគណនេយ្យតាមគណនី Pointer និងរូបិយប័ណ្ណ។
  4. Review in the Accounting moduleពិនិត្យក្នុងម៉ូឌុលគណនេយ្យ
    Chart of accounts, journal review, fixed assets and account-mapping screens. គណនី បញ្ជីគណនេយ្យ ទ្រព្យសកម្ម និងផ្ទាំងផ្គូផ្គងគណនី។

7. Data-integrity safeguardsការការពារភាពត្រឹមត្រូវទិន្នន័យ

Invariants enforced at the databaseគោលការណ៍អនុវត្តនៅ Database

  • The invoice trigger (INSERT + UPDATE) guarantees a 0-amount invoice can never appear "paid" without a real settlement — even from the encrypted vendor bill-run procs. Legitimate settlement sweeps are exempted via their 0-amount receipt link or the group's real payment in the month. Trigger វិក្កយបត្រ (INSERT + UPDATE) ធានាថាវិក្កយបត្រ 0 មិនអាចបង្ហាញ "បង់ហើយ" ដោយគ្មានការទូទាត់ពិត — សូម្បីតែពី Proc ដើមអ៊ិនគ្រីប។ ការបិទស្របច្បាប់ លើកលែងតាមតំណបង្កាន់ដៃ 0 ឬការបង់ប្រាក់ពិតរបស់ក្រុមក្នុងខែ។
  • All multi-table money flows run inside distributed transactions (MSDTC). រាល់លំហូរប្រាក់ច្រើនតារាង ដំណើរការក្នុងប្រតិបត្តិការចែកចាយ (MSDTC)។
  • History is corrected by compensating entries (reversals, adjustments, status journals) — never by deletion. ប្រវត្តិកែដោយបញ្ចូលទូទាត់បដិសេធ (បដិសេធ កែសម្រួល កំណត់ត្រាស្ថានភាព) — មិនដែលលុបចោលឡើយ។

8. Integration endpointsចំណុចតភ្ជាប់

ServiceសេវាUsed forប្រើសម្រាប់
CoreAPIBill run, receive payment, meter/modem/relay, change meterចេញវិក្កយបត្រ ទទួលប្រាក់ កុងទ័រ/Modem/Relay ប្តូរកុងទ័រ
epower-updaterVersion releases per licenseeការចេញផ្សាយកំណែតាម Licensee
Bill24 / DigitalBillDigital bills + KHQRវិក្កយបត្រឌីជីថល + KHQR
ACLEDABank payment export/importទូទាត់តាមធនាគារ
AMR / EDMISmart meter reads & relayអានកុងទ័រ និង Relay
EAC AppRegulator reportingរបាយការណ៍និយតករ
Mailអ៊ីមែលScheduled email reportsរបាយការណ៍តាមកាលវិភាគ