plac-micro-common 1.3.48 → 1.3.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/http/modules/auth_client/auth_client.constant.d.ts +1 -0
- package/dist/http/modules/auth_client/auth_client.constant.js +4 -0
- package/dist/http/modules/auth_client/auth_client.module.d.ts +5 -0
- package/dist/http/modules/auth_client/auth_client.module.js +34 -0
- package/dist/http/modules/auth_client/auth_client.service.d.ts +12 -0
- package/dist/http/modules/auth_client/auth_client.service.js +77 -0
- package/dist/http/modules/auth_client/auth_client.type.d.ts +22 -0
- package/dist/http/modules/auth_client/auth_client.type.js +2 -0
- package/dist/http/modules/auth_client/index.d.ts +4 -0
- package/dist/http/modules/auth_client/index.js +20 -0
- package/dist/http/modules/index.d.ts +1 -0
- package/dist/http/modules/index.js +1 -0
- package/dist/libs/pdf-form/templates/cover-note-endowment.templat.d.ts +1 -1
- package/dist/libs/pdf-form/templates/cover-note-endowment.templat.js +0 -3
- package/dist/libs/pdf-form/templates/cover-note-termlife.template.d.ts +1 -1
- package/dist/libs/pdf-form/templates/cover-note-termlife.template.js +0 -3
- package/dist/libs/pdf-form/templates/receipt.template.d.ts +1 -1
- package/dist/libs/pdf-form/templates/receipt.template.js +0 -1
- package/dist/models/application/application.entity.d.ts +3 -1
- package/dist/models/application/application.entity.js +10 -0
- package/dist/models/core/index.d.ts +3 -2
- package/dist/models/core/index.js +4 -1
- package/dist/models/core/org_referral.entity.d.ts +17 -0
- package/dist/models/core/org_referral.entity.js +74 -0
- package/package.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const AUTH_CLIENT_OPTIONS = "AUTH_CLIENT_OPTIONS";
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var AuthClientModule_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.AuthClientModule = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const auth_client_service_1 = require("./auth_client.service");
|
|
13
|
+
const auth_client_constant_1 = require("./auth_client.constant");
|
|
14
|
+
const axios_1 = require("@nestjs/axios");
|
|
15
|
+
let AuthClientModule = AuthClientModule_1 = class AuthClientModule {
|
|
16
|
+
static register(options) {
|
|
17
|
+
return {
|
|
18
|
+
module: AuthClientModule_1,
|
|
19
|
+
imports: [axios_1.HttpModule],
|
|
20
|
+
providers: [
|
|
21
|
+
{
|
|
22
|
+
provide: auth_client_constant_1.AUTH_CLIENT_OPTIONS,
|
|
23
|
+
useValue: options,
|
|
24
|
+
},
|
|
25
|
+
auth_client_service_1.AuthClientService,
|
|
26
|
+
],
|
|
27
|
+
exports: [auth_client_service_1.AuthClientService],
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
exports.AuthClientModule = AuthClientModule;
|
|
32
|
+
exports.AuthClientModule = AuthClientModule = AuthClientModule_1 = __decorate([
|
|
33
|
+
(0, common_1.Module)({})
|
|
34
|
+
], AuthClientModule);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { HttpService } from "@nestjs/axios";
|
|
2
|
+
import { AuthClientModuleOptions, ResolvedUserInfo } from "./auth_client.type";
|
|
3
|
+
export declare class AuthClientService {
|
|
4
|
+
private readonly httpService;
|
|
5
|
+
private readonly options;
|
|
6
|
+
private readonly logger;
|
|
7
|
+
constructor(httpService: HttpService, options: AuthClientModuleOptions);
|
|
8
|
+
resolveUserInfoById(userId: string): Promise<ResolvedUserInfo | null>;
|
|
9
|
+
resolveUserInfoByIds(ids: string[]): Promise<(ResolvedUserInfo | null)[]>;
|
|
10
|
+
private getHeaders;
|
|
11
|
+
private handleError;
|
|
12
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var AuthClientService_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.AuthClientService = void 0;
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const axios_1 = require("@nestjs/axios");
|
|
19
|
+
const rxjs_1 = require("rxjs");
|
|
20
|
+
const axios_2 = require("axios");
|
|
21
|
+
const auth_client_constant_1 = require("./auth_client.constant");
|
|
22
|
+
let AuthClientService = AuthClientService_1 = class AuthClientService {
|
|
23
|
+
constructor(httpService, options) {
|
|
24
|
+
this.httpService = httpService;
|
|
25
|
+
this.options = options;
|
|
26
|
+
this.logger = new common_1.Logger(AuthClientService_1.name);
|
|
27
|
+
}
|
|
28
|
+
async resolveUserInfoById(userId) {
|
|
29
|
+
try {
|
|
30
|
+
const response = await (0, rxjs_1.firstValueFrom)(this.httpService.get(`${this.options.base_url}/auth-user/resolve/${userId}`, {
|
|
31
|
+
headers: this.getHeaders(),
|
|
32
|
+
timeout: this.options.timeout_ms ?? 5000,
|
|
33
|
+
}));
|
|
34
|
+
return response.data;
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
this.handleError(error, `Failed to resolve user by id: ${userId}`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
async resolveUserInfoByIds(ids) {
|
|
41
|
+
if (!ids?.length)
|
|
42
|
+
return [];
|
|
43
|
+
try {
|
|
44
|
+
const response = await (0, rxjs_1.firstValueFrom)(this.httpService.post(`${this.options.base_url}/auth-user/resolve-many`, { ids }, {
|
|
45
|
+
headers: this.getHeaders(),
|
|
46
|
+
timeout: this.options.timeout_ms ?? 5000,
|
|
47
|
+
}));
|
|
48
|
+
return response.data;
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
this.handleError(error, `Failed to resolve users by ids: ${ids.join(", ")}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
getHeaders() {
|
|
55
|
+
return {
|
|
56
|
+
"x-internal-secret": this.options.internal_api_key,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
handleError(error, message) {
|
|
60
|
+
if (error instanceof axios_2.AxiosError) {
|
|
61
|
+
this.logger.error(message, {
|
|
62
|
+
status: error.response?.status,
|
|
63
|
+
response_data: error.response?.data,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
this.logger.error(message, error);
|
|
68
|
+
}
|
|
69
|
+
throw new common_1.BadGatewayException("Auth service request failed");
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
exports.AuthClientService = AuthClientService;
|
|
73
|
+
exports.AuthClientService = AuthClientService = AuthClientService_1 = __decorate([
|
|
74
|
+
(0, common_1.Injectable)(),
|
|
75
|
+
__param(1, (0, common_1.Inject)(auth_client_constant_1.AUTH_CLIENT_OPTIONS)),
|
|
76
|
+
__metadata("design:paramtypes", [axios_1.HttpService, Object])
|
|
77
|
+
], AuthClientService);
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface ResolvedUserRole {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
}
|
|
5
|
+
export interface ResolvedUserInfo {
|
|
6
|
+
id: string;
|
|
7
|
+
username: string;
|
|
8
|
+
email: string;
|
|
9
|
+
is_active: boolean;
|
|
10
|
+
full_name?: string | null;
|
|
11
|
+
full_name_kh?: string | null;
|
|
12
|
+
gender?: string | null;
|
|
13
|
+
roles: ResolvedUserRole[];
|
|
14
|
+
}
|
|
15
|
+
export interface ResolveUserInfoByIdsDto {
|
|
16
|
+
ids: string[];
|
|
17
|
+
}
|
|
18
|
+
export interface AuthClientModuleOptions {
|
|
19
|
+
base_url: string;
|
|
20
|
+
internal_api_key: string;
|
|
21
|
+
timeout_ms?: number;
|
|
22
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./auth_client.service"), exports);
|
|
18
|
+
__exportStar(require("./auth_client.constant"), exports);
|
|
19
|
+
__exportStar(require("./auth_client.module"), exports);
|
|
20
|
+
__exportStar(require("./auth_client.type"), exports);
|
|
@@ -16,3 +16,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./request_context.module"), exports);
|
|
18
18
|
__exportStar(require("./jwt_auth.module"), exports);
|
|
19
|
+
__exportStar(require("./auth_client"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const COVER_NOTE_ENDOWMENT_TEMPLATE = "\n<!DOCTYPE html>\n<html lang=\"km\">\n<head>\n <meta charset=\"UTF-8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/>\n <title>\u1780\u17C6\u178E\u178F\u17CB\u179F\u17C6\u17A2\u17B6\u1784 - Cover Note</title>\n <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n <link href=\"https://fonts.googleapis.com/css2?family=Hanuman:wght@100..900&family=Moul&display=swap\" rel=\"stylesheet\">\n <style>\n * { box-sizing: border-box; margin: 0; padding: 0; }\n\n body {\n font-family: \"Hanuman\", system-ui, sans-serif;\n background: #f0f0f0;\n display: flex;\n justify-content: center;\n padding: 40px 20px;\n }\n\n .container {\n background: #fff;\n width: 210mm;\n min-height: 297mm;\n padding: 20mm 20mm 20mm 20mm;\n box-shadow: 0 4px 24px rgba(0,0,0,0.12);\n }\n\n p {\n font-family: 'Noto Sans Khmer', sans-serif;\n line-height: 1.8;\n font-size: 13px;\n }\n\n h4 {\n font-size: 18px;\n font-family: 'Noto Sans Khmer', sans-serif;\n padding: 0 !important;\n margin: 0 !important;\n }\n\n h5 {\n font-size: 14px;\n font-family: 'Noto Sans Khmer', sans-serif;\n padding: 0 !important;\n margin: 0 !important;\n }\n\n .text-right { text-align: right; }\n .text-center { text-align: center; }\n\n .mt-2 { margin-top: 8px; }\n .mt-4 { margin-top: 10px; }\n .mt-6 { margin-top: 12px; }\n .mt-8 { margin-top: 16px; }\n .ml-4 { margin-left: 32px; }\n\n table { width: 100% !important; border-collapse: collapse; }\n td { vertical-align: top; }\n\n .text-orange {\n color: rgb(241, 90, 34) !important;\n font-weight: 600;\n }\n\n /* Logo fallback */\n .logo-fallback {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n }\n .logo-icon {\n width: 38px; height: 38px;\n background: #0d1f3c;\n color: #e2c96e;\n font-size: 18px; font-weight: 700;\n display: flex; align-items: center; justify-content: center;\n border-radius: 3px;\n }\n .logo-brand { font-size: 17px; font-weight: 700; color: #0d1f3c; line-height: 1.1; }\n .logo-tagline { font-size: 9px; color: #888; text-transform: uppercase; letter-spacing: 0.08em; }\n\n /* Signature lines */\n .sig-line-long { border-top: 1px solid #000; display: inline-block; width: 240px; margin-top: 4px; }\n .sig-line-short { border-top: 1px solid #000; display: inline-block; width: 160px; margin-top: 4px; }\n .sig-spacer { height: 30mm; }\n\n @media print {\n body { background: none; padding: 0; }\n .container { box-shadow: none; }\n }\n\n @media (max-width: 640px) {\n .container { width: 100%; padding: 24px 16px; min-height: unset; }\n }\n </style>\n</head>\n<body>\n <div class=\"container\">\n\n <!-- ===== HEADER ===== -->\n <table>\n <tr>\n <td width=\"50%\" style=\"vertical-align: middle;\">\n <img src=\"data:image/png;base64,<%= logo_base64 %>\" alt=\"Logo\" class=\"title-logo\" style=\"width: 150px; height: auto;\" />\n </td>\n <td></td>\n <td width=\"30%\" style=\"vertical-align: middle; text-align: center;\">\n <p style=\"font-size: 16px;\">No. <span style=\"font-weight: bold; color: red;\"><%= cover_note_no %></span></p>\n </td>\n </tr>\n </table>\n\n <!-- ===== TITLE ===== -->\n <div class=\"text-center\" style=\"margin-top: 10mm;\">\n <h4>\u1780\u17C6\u178E\u178F\u17CB\u179F\u17C6\u17A2\u17B6\u1784</h4>\n <h4>Cover Note</h4>\n </div>\n\n <!-- ===== FIELDS ===== -->\n <div style=\"margin-top: 10mm;\">\n <div>\n <p>\u1796\u17B6\u1780\u17D2\u1799\u179F\u17D2\u1793\u17BE\u179F\u17BB\u17C6\u179B\u17C1\u1781 / Application Number :\n <span style=\"font-weight: bold;\"><%= application_no %></span>\n </p>\n </div>\n <div>\n <p>\u1798\u17D2\u1785\u17B6\u179F\u17CB\u1794\u178E\u17D2\u178E\u179F\u1793\u17D2\u1799\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784 / Policyholder:\n <span style=\"font-weight: bold;\"><%= ph_full_name %></span>\n </p>\n </div>\n <div>\n <p>\u17A2\u17D2\u1793\u1780\u178F\u17D2\u179A\u17BC\u179C\u1794\u17B6\u1793\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784 / Life Assured :\n <span style=\"font-weight: bold;\"><%= la_full_name %></span>\n </p>\n </div>\n <div>\n <p>\u1794\u17BB\u1796\u17D2\u179C\u179B\u17B6\u1797\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u178A\u17C2\u179B\u1794\u17B6\u1793\u1794\u1784\u17CB\u178A\u17C6\u1794\u17BC\u1784 / Initial Premium Received:\n <span style=\"font-weight: bold;\"><%= initial_premium_amount %></span>\n </p>\n </div>\n <div>\n <p>\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798 / Commencement Date:\n <span style=\"font-weight: bold;\"><%= commencement_date %></span>\n </p>\n </div>\n </div>\n\n <!-- ===== BODY TEXT ===== -->\n <div style=\"margin-top: 5mm;\">\n <p>\n \u1780\u17D2\u179A\u17BB\u1798\u17A0\u17CA\u17BB\u1793\u1795\u17D2\u178F\u179B\u17CB\u1787\u17BC\u1793\u17A2\u17D2\u1793\u1780\u178F\u17D2\u179A\u17BC\u179C\u1794\u17B6\u1793\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784 \u1793\u17BC\u179C\u1780\u17B6\u179A\u1780\u17B6\u179A\u1796\u17B6\u179A\u1794\u178E\u17D2\u178F\u17C4\u17C7\u17A2\u17B6\u179F\u1793\u17D2\u1793\u1785\u17C6\u1793\u17BD\u1793\u1791\u17B9\u1780\u1794\u17D2\u179A\u17B6\u1780\u17CB 2,500 \u178A\u17BB\u179B\u17D2\u179B\u17B6\u179A\u17A2\u17B6\u1798\u17C1\u179A\u17B7\u1780\u1780\u17D2\u1793\u17BB\u1784\n \u1780\u179A\u178E\u17B8\u1798\u179A\u178E\u1797\u17B6\u1796\u178A\u17C2\u179B\u1794\u178E\u17D2\u178F\u17B6\u179B\u1798\u1780\u1796\u17B8\u1782\u17D2\u179A\u17C4\u17C7\u1790\u17D2\u1793\u17B6\u1780\u17CB \u1782\u17B7\u178F\u1785\u17B6\u1794\u17CB\u1796\u17B8\u1790\u17D2\u1784\u17C3\u178A\u17C2\u179B\u1780\u17D2\u179A\u17BB\u1798\u17A0\u17CA\u17BB\u1793\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793\u1796\u17B6\u1780\u17D2\u1799\u179F\u17D2\u1793\u17BE\u179F\u17BB\u17C6\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\n \u17A2\u17B6\u1799\u17BB\u1787\u17B8\u179C\u17B7\u178F\u1787\u17B6\u1798\u17BD\u1799\u1793\u17B9\u1784\u1780\u17B6\u179A\u1794\u1784\u17CB\u1794\u17BB\u1796\u17D2\u179C\u179B\u17B6\u1797\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u178A\u17C6\u1794\u17BC\u1784\u17D4\n </p>\n <p>\n We provide the life assured with limited temporary cover of USD 2,500 against death caused by\n accidents from the date we receive the application for life assurance together with payment of the initial\n premium.\n </p>\n </div>\n\n <!-- ===== TERMINATION (Khmer) ===== -->\n <div style=\"margin-top: 5mm;\">\n <h5 style=\"color: #000;\">\u1780\u17C6\u178E\u178F\u17CB\u179F\u17C6\u17A2\u17B6\u1784\u1793\u17B9\u1784\u1794\u1789\u17D2\u1785\u1794\u17CB\u1780\u17D2\u1793\u17BB\u1784\u1780\u179A\u178E\u17B8\u178E\u17B6\u1798\u17BD\u1799\u178A\u17BC\u1785\u1781\u17B6\u1784\u1780\u17D2\u179A\u17C4\u1798\u17D6</h5>\n <div style=\"margin-left: 10mm; margin-top: 2mm;\">\n <p>\u1780) \u1793\u17C5\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791\u178A\u17C2\u179B\u1780\u17D2\u179A\u17BB\u1798\u17A0\u17CA\u17BB\u1793\u1785\u17C1\u1789\u1794\u178E\u17D2\u178E\u179F\u1793\u17D2\u1799\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784 \u1794\u178A\u17B7\u179F\u17C1\u1792 \u17AC\u1796\u1793\u17D2\u1799\u17B6\u179A\u1796\u17C1\u179B\u1796\u17B6\u1780\u17D2\u1799\u179F\u17D2\u1793\u17BE\u179F\u17BB\u17C6\u1787\u17B6<br>\u179B\u17B6\u1799\u179B\u1780\u17D2\u1781\u178E\u17CD\u17A2\u1780\u17D2\u179F\u179A\u17D4</p>\n <p>\u1781) \u1793\u17C5\u1796\u17C1\u179B\u178A\u17C2\u179B\u1798\u17D2\u1785\u17B6\u179F\u17CB\u1794\u178E\u17D2\u178E\u179F\u1793\u17D2\u1799\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u1798\u17B7\u1793\u1791\u1791\u17BD\u179B\u1799\u1780\u179B\u1780\u17D2\u1781\u1781\u178E\u17D2\u178C\u1793\u17C3\u1780\u17B6\u179A\u1792\u17B6\u1793\u17B6\u178F\u17B6\u1798\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791\u1780\u17C6\u178E\u178F\u17CB\u17D4</p>\n <p>\u1782) \u1793\u17C5\u1796\u17C1\u179B\u178A\u17C2\u179B\u1798\u17D2\u1785\u17B6\u179F\u17CB\u1794\u178E\u17D2\u178E\u179F\u1793\u17D2\u1799\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u1794\u17C4\u17C7\u1794\u1784\u17CB\u1780\u17B6\u179A\u178A\u17B6\u1780\u17CB\u1796\u17B6\u1780\u17D2\u1799\u179F\u17D2\u1793\u17BE\u179F\u17BB\u17C6\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u178A\u17C4\u1799\u179F\u17D2\u1798\u17D0\u1782\u17D2\u179A\u1785\u17B7\u178F\u17D2\u178F\u17D4</p>\n </div>\n </div>\n\n <!-- ===== TERMINATION (English) ===== -->\n <div>\n <h5 style=\"color: #000;\">The cover note terminates:</h5>\n <div style=\"margin-left: 10mm;\">\n <p>a) on the date we issue the policy, decline or postpone the application in writing.</p>\n <p>b) when the Policyholder does not accept the conditions of cover by the required date.</p>\n <p>c) when the Policyholder voluntarily drops out of the application process.</p>\n </div>\n </div>\n\n <!-- ===== SIGNATURE ===== -->\n <div style=\"margin-top: 10mm; margin-left: 10mm;\">\n <table>\n <tbody>\n <tr>\n <td width=\"50%\" class=\"text-center\">\n <p>\u17A2\u17D2\u1793\u1780\u178F\u17C6\u178E\u17B6\u1784\u1780\u17D2\u179A\u17BB\u1798\u17A0\u17CA\u17BB\u1793 / Authorized Officer</p>\n <div class=\"sig-spacer\"></div>\n <p><%= authorized_officer_name %></p>\n <div class=\"sig-line-long\"></div>\n </td>\n <td width=\"15%\"></td>\n <td width=\"35%\" class=\"text-center\">\n <p>\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 / Date of Issue:</p>\n <div class=\"sig-spacer\"></div>\n <p><%= date_of_issue %></p>\n <div class=\"sig-line-short\"></div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n </div>\n</body>\n</html>\n";
|
|
1
|
+
export declare const COVER_NOTE_ENDOWMENT_TEMPLATE = "\n<!DOCTYPE html>\n<html lang=\"km\">\n<head>\n <meta charset=\"UTF-8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/>\n <title>\u1780\u17C6\u178E\u178F\u17CB\u179F\u17C6\u17A2\u17B6\u1784 - Cover Note</title>\n <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n <link href=\"https://fonts.googleapis.com/css2?family=Hanuman:wght@100..900&family=Moul&display=swap\" rel=\"stylesheet\">\n <style>\n * { box-sizing: border-box; margin: 0; padding: 0; }\n\n body {\n font-family: \"Hanuman\", system-ui, sans-serif;\n background: #f0f0f0;\n display: flex;\n justify-content: center;\n padding: 40px 20px;\n }\n\n .container {\n background: #fff;\n width: 210mm;\n min-height: 297mm;\n padding: 20mm 20mm 20mm 20mm;\n box-shadow: 0 4px 24px rgba(0,0,0,0.12);\n }\n\n p {\n line-height: 1.8;\n font-size: 13px;\n }\n\n h4 {\n font-size: 18px;\n padding: 0 !important;\n margin: 0 !important;\n }\n\n h5 {\n font-size: 14px;\n padding: 0 !important;\n margin: 0 !important;\n }\n\n .text-right { text-align: right; }\n .text-center { text-align: center; }\n\n .mt-2 { margin-top: 8px; }\n .mt-4 { margin-top: 10px; }\n .mt-6 { margin-top: 12px; }\n .mt-8 { margin-top: 16px; }\n .ml-4 { margin-left: 32px; }\n\n table { width: 100% !important; border-collapse: collapse; }\n td { vertical-align: top; }\n\n .text-orange {\n color: rgb(241, 90, 34) !important;\n font-weight: 600;\n }\n\n /* Logo fallback */\n .logo-fallback {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n }\n .logo-icon {\n width: 38px; height: 38px;\n background: #0d1f3c;\n color: #e2c96e;\n font-size: 18px; font-weight: 700;\n display: flex; align-items: center; justify-content: center;\n border-radius: 3px;\n }\n .logo-brand { font-size: 17px; font-weight: 700; color: #0d1f3c; line-height: 1.1; }\n .logo-tagline { font-size: 9px; color: #888; text-transform: uppercase; letter-spacing: 0.08em; }\n\n /* Signature lines */\n .sig-line-long { border-top: 1px solid #000; display: inline-block; width: 240px; margin-top: 4px; }\n .sig-line-short { border-top: 1px solid #000; display: inline-block; width: 160px; margin-top: 4px; }\n .sig-spacer { height: 30mm; }\n\n @media print {\n body { background: none; padding: 0; }\n .container { box-shadow: none; }\n }\n\n @media (max-width: 640px) {\n .container { width: 100%; padding: 24px 16px; min-height: unset; }\n }\n </style>\n</head>\n<body>\n <div class=\"container\">\n\n <!-- ===== HEADER ===== -->\n <table>\n <tr>\n <td width=\"50%\" style=\"vertical-align: middle;\">\n <img src=\"data:image/png;base64,<%= logo_base64 %>\" alt=\"Logo\" class=\"title-logo\" style=\"width: 150px; height: auto;\" />\n </td>\n <td></td>\n <td width=\"30%\" style=\"vertical-align: middle; text-align: center;\">\n <p style=\"font-size: 16px;\">No. <span style=\"font-weight: bold; color: red;\"><%= cover_note_no %></span></p>\n </td>\n </tr>\n </table>\n\n <!-- ===== TITLE ===== -->\n <div class=\"text-center\" style=\"margin-top: 10mm;\">\n <h4>\u1780\u17C6\u178E\u178F\u17CB\u179F\u17C6\u17A2\u17B6\u1784</h4>\n <h4>Cover Note</h4>\n </div>\n\n <!-- ===== FIELDS ===== -->\n <div style=\"margin-top: 10mm;\">\n <div>\n <p>\u1796\u17B6\u1780\u17D2\u1799\u179F\u17D2\u1793\u17BE\u179F\u17BB\u17C6\u179B\u17C1\u1781 / Application Number :\n <span style=\"font-weight: bold;\"><%= application_no %></span>\n </p>\n </div>\n <div>\n <p>\u1798\u17D2\u1785\u17B6\u179F\u17CB\u1794\u178E\u17D2\u178E\u179F\u1793\u17D2\u1799\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784 / Policyholder:\n <span style=\"font-weight: bold;\"><%= ph_full_name %></span>\n </p>\n </div>\n <div>\n <p>\u17A2\u17D2\u1793\u1780\u178F\u17D2\u179A\u17BC\u179C\u1794\u17B6\u1793\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784 / Life Assured :\n <span style=\"font-weight: bold;\"><%= la_full_name %></span>\n </p>\n </div>\n <div>\n <p>\u1794\u17BB\u1796\u17D2\u179C\u179B\u17B6\u1797\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u178A\u17C2\u179B\u1794\u17B6\u1793\u1794\u1784\u17CB\u178A\u17C6\u1794\u17BC\u1784 / Initial Premium Received:\n <span style=\"font-weight: bold;\"><%= initial_premium_amount %></span>\n </p>\n </div>\n <div>\n <p>\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798 / Commencement Date:\n <span style=\"font-weight: bold;\"><%= commencement_date %></span>\n </p>\n </div>\n </div>\n\n <!-- ===== BODY TEXT ===== -->\n <div style=\"margin-top: 5mm;\">\n <p>\n \u1780\u17D2\u179A\u17BB\u1798\u17A0\u17CA\u17BB\u1793\u1795\u17D2\u178F\u179B\u17CB\u1787\u17BC\u1793\u17A2\u17D2\u1793\u1780\u178F\u17D2\u179A\u17BC\u179C\u1794\u17B6\u1793\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784 \u1793\u17BC\u179C\u1780\u17B6\u179A\u1780\u17B6\u179A\u1796\u17B6\u179A\u1794\u178E\u17D2\u178F\u17C4\u17C7\u17A2\u17B6\u179F\u1793\u17D2\u1793\u1785\u17C6\u1793\u17BD\u1793\u1791\u17B9\u1780\u1794\u17D2\u179A\u17B6\u1780\u17CB 2,500 \u178A\u17BB\u179B\u17D2\u179B\u17B6\u179A\u17A2\u17B6\u1798\u17C1\u179A\u17B7\u1780\u1780\u17D2\u1793\u17BB\u1784\n \u1780\u179A\u178E\u17B8\u1798\u179A\u178E\u1797\u17B6\u1796\u178A\u17C2\u179B\u1794\u178E\u17D2\u178F\u17B6\u179B\u1798\u1780\u1796\u17B8\u1782\u17D2\u179A\u17C4\u17C7\u1790\u17D2\u1793\u17B6\u1780\u17CB \u1782\u17B7\u178F\u1785\u17B6\u1794\u17CB\u1796\u17B8\u1790\u17D2\u1784\u17C3\u178A\u17C2\u179B\u1780\u17D2\u179A\u17BB\u1798\u17A0\u17CA\u17BB\u1793\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793\u1796\u17B6\u1780\u17D2\u1799\u179F\u17D2\u1793\u17BE\u179F\u17BB\u17C6\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\n \u17A2\u17B6\u1799\u17BB\u1787\u17B8\u179C\u17B7\u178F\u1787\u17B6\u1798\u17BD\u1799\u1793\u17B9\u1784\u1780\u17B6\u179A\u1794\u1784\u17CB\u1794\u17BB\u1796\u17D2\u179C\u179B\u17B6\u1797\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u178A\u17C6\u1794\u17BC\u1784\u17D4\n </p>\n <p>\n We provide the life assured with limited temporary cover of USD 2,500 against death caused by\n accidents from the date we receive the application for life assurance together with payment of the initial\n premium.\n </p>\n </div>\n\n <!-- ===== TERMINATION (Khmer) ===== -->\n <div style=\"margin-top: 5mm;\">\n <h5 style=\"color: #000;\">\u1780\u17C6\u178E\u178F\u17CB\u179F\u17C6\u17A2\u17B6\u1784\u1793\u17B9\u1784\u1794\u1789\u17D2\u1785\u1794\u17CB\u1780\u17D2\u1793\u17BB\u1784\u1780\u179A\u178E\u17B8\u178E\u17B6\u1798\u17BD\u1799\u178A\u17BC\u1785\u1781\u17B6\u1784\u1780\u17D2\u179A\u17C4\u1798\u17D6</h5>\n <div style=\"margin-left: 10mm; margin-top: 2mm;\">\n <p>\u1780) \u1793\u17C5\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791\u178A\u17C2\u179B\u1780\u17D2\u179A\u17BB\u1798\u17A0\u17CA\u17BB\u1793\u1785\u17C1\u1789\u1794\u178E\u17D2\u178E\u179F\u1793\u17D2\u1799\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784 \u1794\u178A\u17B7\u179F\u17C1\u1792 \u17AC\u1796\u1793\u17D2\u1799\u17B6\u179A\u1796\u17C1\u179B\u1796\u17B6\u1780\u17D2\u1799\u179F\u17D2\u1793\u17BE\u179F\u17BB\u17C6\u1787\u17B6<br>\u179B\u17B6\u1799\u179B\u1780\u17D2\u1781\u178E\u17CD\u17A2\u1780\u17D2\u179F\u179A\u17D4</p>\n <p>\u1781) \u1793\u17C5\u1796\u17C1\u179B\u178A\u17C2\u179B\u1798\u17D2\u1785\u17B6\u179F\u17CB\u1794\u178E\u17D2\u178E\u179F\u1793\u17D2\u1799\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u1798\u17B7\u1793\u1791\u1791\u17BD\u179B\u1799\u1780\u179B\u1780\u17D2\u1781\u1781\u178E\u17D2\u178C\u1793\u17C3\u1780\u17B6\u179A\u1792\u17B6\u1793\u17B6\u178F\u17B6\u1798\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791\u1780\u17C6\u178E\u178F\u17CB\u17D4</p>\n <p>\u1782) \u1793\u17C5\u1796\u17C1\u179B\u178A\u17C2\u179B\u1798\u17D2\u1785\u17B6\u179F\u17CB\u1794\u178E\u17D2\u178E\u179F\u1793\u17D2\u1799\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u1794\u17C4\u17C7\u1794\u1784\u17CB\u1780\u17B6\u179A\u178A\u17B6\u1780\u17CB\u1796\u17B6\u1780\u17D2\u1799\u179F\u17D2\u1793\u17BE\u179F\u17BB\u17C6\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u178A\u17C4\u1799\u179F\u17D2\u1798\u17D0\u1782\u17D2\u179A\u1785\u17B7\u178F\u17D2\u178F\u17D4</p>\n </div>\n </div>\n\n <!-- ===== TERMINATION (English) ===== -->\n <div>\n <h5 style=\"color: #000;\">The cover note terminates:</h5>\n <div style=\"margin-left: 10mm;\">\n <p>a) on the date we issue the policy, decline or postpone the application in writing.</p>\n <p>b) when the Policyholder does not accept the conditions of cover by the required date.</p>\n <p>c) when the Policyholder voluntarily drops out of the application process.</p>\n </div>\n </div>\n\n <!-- ===== SIGNATURE ===== -->\n <div style=\"margin-top: 10mm; margin-left: 10mm;\">\n <table>\n <tbody>\n <tr>\n <td width=\"50%\" class=\"text-center\">\n <p>\u17A2\u17D2\u1793\u1780\u178F\u17C6\u178E\u17B6\u1784\u1780\u17D2\u179A\u17BB\u1798\u17A0\u17CA\u17BB\u1793 / Authorized Officer</p>\n <div class=\"sig-spacer\"></div>\n <p><%= authorized_officer_name %></p>\n <div class=\"sig-line-long\"></div>\n </td>\n <td width=\"15%\"></td>\n <td width=\"35%\" class=\"text-center\">\n <p>\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 / Date of Issue:</p>\n <div class=\"sig-spacer\"></div>\n <p><%= date_of_issue %></p>\n <div class=\"sig-line-short\"></div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n </div>\n</body>\n</html>\n";
|
|
@@ -31,21 +31,18 @@ exports.COVER_NOTE_ENDOWMENT_TEMPLATE = `
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
p {
|
|
34
|
-
font-family: 'Noto Sans Khmer', sans-serif;
|
|
35
34
|
line-height: 1.8;
|
|
36
35
|
font-size: 13px;
|
|
37
36
|
}
|
|
38
37
|
|
|
39
38
|
h4 {
|
|
40
39
|
font-size: 18px;
|
|
41
|
-
font-family: 'Noto Sans Khmer', sans-serif;
|
|
42
40
|
padding: 0 !important;
|
|
43
41
|
margin: 0 !important;
|
|
44
42
|
}
|
|
45
43
|
|
|
46
44
|
h5 {
|
|
47
45
|
font-size: 14px;
|
|
48
|
-
font-family: 'Noto Sans Khmer', sans-serif;
|
|
49
46
|
padding: 0 !important;
|
|
50
47
|
margin: 0 !important;
|
|
51
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const COVER_NOTE_TERMLIFE_TEMPLATE = "\n<!DOCTYPE html>\n<html lang=\"km\">\n<head>\n <meta charset=\"UTF-8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/>\n <title>\u1780\u17C6\u178E\u178F\u17CB\u179F\u17C6\u17A2\u17B6\u1784 - Cover Note</title>\n <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n <link href=\"https://fonts.googleapis.com/css2?family=Hanuman:wght@100..900&family=Moul&display=swap\" rel=\"stylesheet\">\n <style>\n * { box-sizing: border-box; margin: 0; padding: 0; }\n\n body {\n font-family: \"Hanuman\", system-ui, sans-serif;\n background: #f0f0f0;\n display: flex;\n justify-content: center;\n padding: 40px 20px;\n }\n\n .container {\n background: #fff;\n width: 210mm;\n min-height: 297mm;\n padding: 20mm 20mm 20mm 20mm;\n box-shadow: 0 4px 24px rgba(0,0,0,0.12);\n position: relative;\n }\n\n p {\n font-family: 'Noto Sans Khmer', sans-serif;\n line-height: 1.8;\n font-size: 13px;\n }\n\n h4 {\n font-size: 18px;\n font-family: 'Noto Sans Khmer', sans-serif;\n padding: 0;\n margin: 0;\n }\n\n h5 {\n font-size: 14px;\n font-family: 'Noto Sans Khmer', sans-serif;\n padding: 0;\n margin: 0;\n }\n\n table { width: 100%; border-collapse: collapse; }\n td { vertical-align: top; }\n\n .text-right { text-align: right; }\n .text-center { text-align: center; }\n\n .mt-2 { margin-top: 8px; }\n .mt-4 { margin-top: 10px; }\n .mt-6 { margin-top: 12px; }\n .mt-8 { margin-top: 16px; }\n .ml-4 { margin-left: 32px; }\n\n .text-orange {\n color: rgb(241, 90, 34);\n font-weight: 600;\n }\n\n /* Header logo row */\n .header-table td { padding: 0; }\n\n .logo img { height: 40px; width: 150px; object-fit: contain; }\n\n /* Fallback logo box if image not available */\n .logo-fallback {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n }\n .logo-fallback .logo-icon {\n width: 38px; height: 38px;\n background: #0d1f3c;\n color: #e2c96e;\n font-size: 18px; font-weight: 700;\n display: flex; align-items: center; justify-content: center;\n border-radius: 3px;\n }\n .logo-fallback .logo-brand {\n font-size: 17px; font-weight: 700;\n color: #0d1f3c;\n line-height: 1.1;\n }\n .logo-fallback .logo-tagline {\n font-size: 9px; color: #888;\n text-transform: uppercase; letter-spacing: 0.08em;\n }\n\n .doc-no-cell {\n vertical-align: bottom;\n text-align: center;\n }\n\n .doc-no-cell p { font-size: 16px; }\n .doc-no-cell .no-value { font-weight: bold; color: red; }\n\n /* Title */\n .title-section { margin-top: 10mm; text-align: center; }\n\n /* Fields */\n .fields-section { margin-top: 10mm; }\n .fields-section p { font-size: 13px; }\n .fields-section p span { font-weight: bold; }\n\n /* Body paragraphs */\n .body-section { margin-top: 5mm; }\n .body-section p { font-size: 13px; line-height: 1.8; }\n\n /* Termination */\n .termination-section { margin-top: 10mm; }\n .termination-section h5 { color: #000; }\n .termination-items { margin-left: 10mm; margin-top: 2mm; }\n .termination-items p { font-size: 13px; }\n\n /* Signature */\n .signature-section { margin-top: 20mm; }\n .sig-table td { text-align: center; vertical-align: bottom; }\n .sig-table p { font-size: 13px; }\n .sig-line-long { border-top: 1px solid #000; margin-top: 4px; display: inline-block; width: 240px; }\n .sig-line-short { border-top: 1px solid #000; margin-top: 4px; display: inline-block; width: 160px; }\n .sig-spacer { height: 30mm; }\n\n @media print {\n body { background: none; padding: 0; }\n .container { box-shadow: none; }\n }\n\n @media (max-width: 640px) {\n .container { width: 100%; padding: 24px 16px; min-height: unset; }\n }\n </style>\n</head>\n<body>\n <div class=\"container\">\n\n <!-- ===== HEADER ===== -->\n <table class=\"header-table\">\n <tr>\n <td width=\"50%\" style=\"vertical-align: middle;\">\n <div class=\"logo\">\n <!-- If logo image is available, swap src. Fallback shown below. -->\n <img src=\"data:image/png;base64,<%= logo_base64 %>\" alt=\"Logo\" class=\"title-logo\" style=\"width: 150px; height: auto;\" />\n </div>\n </td>\n <td></td>\n <td width=\"30%\" class=\"doc-no-cell\" style=\"vertical-align: middle; text-align: right;\">\n <p style=\"font-size: 16px;\">No. <span class=\"no-value\"><%= cover_note_no %></span></p>\n </td>\n </tr>\n </table>\n\n <!-- ===== TITLE ===== -->\n <div class=\"title-section\">\n <h4>\u1780\u17C6\u178E\u178F\u17CB\u179F\u17C6\u17A2\u17B6\u1784</h4>\n <!-- <h4>Cover Note</h4> -->\n </div>\n\n <!-- ===== FIELDS ===== -->\n <div class=\"fields-section\">\n <div>\n <p>\u1796\u17B6\u1780\u17D2\u1799\u179F\u17D2\u1793\u17BE\u179F\u17BB\u17C6\u179B\u17C1\u1781:\n <span><%= application_no %></span>\n </p>\n </div>\n <div>\n <p>\u1798\u17D2\u1785\u17B6\u179F\u17CB\u1794\u178E\u17D2\u178E\u179F\u1793\u17D2\u1799\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784:\n <span><%= ph_full_name %></span>\n </p>\n </div>\n <div>\n <p>\u17A2\u17D2\u1793\u1780\u178F\u17D2\u179A\u17BC\u179C\u1794\u17B6\u1793\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784:\n <span><%= la_full_name %></span>\n </p>\n </div>\n <div>\n <p>\u1794\u17BB\u1796\u17D2\u179C\u179B\u17B6\u1797\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u178A\u17C2\u179B\u1794\u17B6\u1793\u1794\u1784\u17CB\u178A\u17C6\u1794\u17BC\u1784:\n <span><%= initial_premium_amount %></span>\n </p>\n </div>\n <div>\n <p>\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798:\n <span><%= commencement_date %></span>\n </p>\n </div>\n </div>\n\n <!-- ===== BODY TEXT ===== -->\n <div class=\"body-section\">\n <p style=\"line-height: 1.8;\">\n \u1780\u17D2\u179A\u17C4\u1799\u1796\u17B8\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793\u1796\u17B6\u1780\u17D2\u1799\u179F\u17D2\u1793\u17BE\u179F\u17BB\u17C6\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u17A2\u17B6\u1799\u17BB\u1787\u17B8\u179C\u17B7\u178F \u1793\u17B7\u1784\u1794\u17BB\u1796\u17D2\u179C\u179B\u17B6\u1797\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u178A\u17C6\u1794\u17BC\u1784 \u1780\u17D2\u179A\u17BB\u1798\u17A0\u17CA\u17BB\u1793\u1793\u17B9\u1784\u1795\u17D2\u178A\u179B\u17CB\u1780\u17B6\u179A\u1792\u17B6\u1793\u17B6\n \u1794\u178E\u17D2\u178F\u17C4\u17C7\u17A2\u17B6\u179F\u1793\u17D2\u1793\u17B2\u17D2\u1799\u17A2\u17D2\u1793\u1780\u178F\u17D2\u179A\u17BC\u179C\u1794\u17B6\u1793\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u179F\u17D2\u1798\u17BE\u1793\u17B9\u1784\u1785\u17C6\u1793\u17BD\u1793\u1791\u17B9\u1780\u1794\u17D2\u179A\u17B6\u1780\u17CB\u178F\u17D2\u179A\u17BC\u179C\u1794\u17B6\u1793\u1792\u17B6\u1793\u17B6\u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1798\u17B7\u1793\u179B\u17BE\u179F\u1796\u17B8 <span\n class=\"text-orange\">\u17E2\u17E5\u17E0\u17E0\u178A\u17BB\u179B\u17D2\u179B\u17B6\u179A\u17A2\u17B6\u1798\u17C1\u179A\u17B7\u1780</span>\n \u1780\u17D2\u1793\u17BB\u1784\u1780\u179A\u178E\u17B8\u1798\u179A\u178E\u1797\u17B6\u1796\u178A\u17C2\u179B\u1794\u178E\u17D2\u178F\u17B6\u179B\u1798\u1780\u1796\u17B8\u1782\u17D2\u179A\u17C4\u17C7\u1790\u17D2\u1793\u17B6\u1780\u17CB\u178A\u17C4\u1799\u1798\u17B7\u1793\u1782\u17B7\u178F\u1796\u17B8\u1785\u17C6\u1793\u17BD\u1793\u1796\u17B6\u1780\u17D2\u1799\u179F\u17D2\u1793\u17BE\u179F\u17BB\u17C6\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784 \u17AC\n \u1785\u17C6\u1793\u17BD\u1793\u1791\u17B9\u1780\u1794\u17D2\u179A\u17B6\u1780\u17CB\u178F\u17D2\u179A\u17BC\u179C\u1794\u17B6\u1793\u1792\u17B6\u1793\u17B6\u178A\u17C2\u179B\u1794\u17B6\u1793\u179F\u17D2\u1793\u17BE\u179F\u17BB\u17C6\u17A1\u17BE\u1799\u17D4 \u1780\u17D2\u1793\u17BB\u1784\u1780\u179A\u178E\u17B8\u178A\u17C2\u179B\u1794\u17BB\u1796\u17D2\u179C\u179B\u17B6\u1797\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u179F\u179A\u17BB\u1794\u1798\u17B6\u1793\u1785\u17C6\u1793\u17BD\u1793\u1785\u17D2\u179A\u17BE\u1793\n \u1787\u17B6\u1784 <span class=\"text-orange\">\u17E2\u17E5\u17E0\u17E0\u178A\u17BB\u179B\u17D2\u179B\u17B6\u179A\u17A2\u17B6\u1798\u17C1\u179A\u17B7\u1780</span>\n \u1780\u17D2\u179A\u17BB\u1798\u17A0\u17CA\u17BB\u1793\u1793\u17B9\u1784\u1795\u17D2\u178F\u179B\u17CB\u1787\u17BC\u1793\u179C\u17B7\u1789\u1793\u17BC\u179C\u1794\u17BB\u1796\u17D2\u179C\u179B\u17B6\u1797\u178A\u17C2\u179B\u1794\u17B6\u1793\u1794\u1784\u17CB\u1793\u17C4\u17C7\u178A\u17C4\u1799\u1796\u17BB\u17C6\u1798\u17B6\u1793\u1780\u17B6\u179A\u1794\u17D2\u179A\u17B6\u1780\u17CB\n \u1787\u17C6\u1793\u17BD\u179F\u17B2\u17D2\u1799\u1780\u17B6\u179A\u1791\u17BC\u1791\u17B6\u178F\u17CB\u17A2\u178F\u17D2\u1790\u1794\u17D2\u179A\u1799\u17C4\u1787\u1793\u17CD\u1780\u17B6\u179A\u1792\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u1794\u178E\u17D2\u178A\u17C4\u17C7\u17A2\u17B6\u179F\u1793\u17D2\u1793\u17D4\n </p>\n <p style=\"line-height: 1.8;margin-top: 5mm;\">\n \u1780\u17D2\u1793\u17BB\u1784\u1780\u179A\u178E\u17B8\u1780\u17B6\u179A\u1792\u17B6\u1793\u17B6\u1794\u178E\u17D2\u178F\u17C4\u17C7\u17A2\u17B6\u179F\u1793\u17D2\u1793\u1798\u17B7\u1793\u178F\u17D2\u179A\u17BC\u179C\u1794\u17B6\u1793\u1795\u17D2\u178F\u179B\u17CB\u1787\u17BC\u1793\u1799\u17C4\u1784\u1791\u17C5\u178F\u17B6\u1798 \u201C\u1781 \u1793\u17B7\u1784\u179B\u1780\u17D2\u1781\u1781\u178E\u17D2\u178C\u201D \u179A\u1794\u179F\u17CB\u1780\u17D2\u179A\u17BB\u1798\u17A0\u17CA\u17BB\u1793\u1793\u17C4\u17C7\u1791\u17C1\n \u1780\u17D2\u179A\u17BB\u1798\u17A0\u17CA\u17BB\u1793\u1793\u17B9\u1784\u1795\u17D2\u178F\u179B\u17CB\u1787\u17BC\u1793\u179C\u17B7\u1789\u1793\u17BC\u179C\u1791\u17B9\u1780\u1794\u17D2\u179A\u17B6\u1780\u17CB\u1794\u17BB\u1796\u17D2\u179C\u179B\u17B6\u1797\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u178A\u17C2\u179B\u1794\u17B6\u1793\u1794\u1784\u17CB\u178A\u17C4\u1799\u1796\u17BB\u17C6\u1798\u17B6\u1793\u1780\u17B6\u179A\u1794\u17D2\u179A\u17B6\u1780\u17CB\u17A1\u17BE\u1799\u17D4\n </p>\n </div>\n\n <!-- ===== TERMINATION CONDITIONS ===== -->\n <div class=\"termination-section\">\n <h5>\u1780\u17B6\u179A\u1792\u17B6\u1793\u17B6\u1794\u178E\u17D2\u178F\u17C4\u17C7\u17A2\u17B6\u179F\u1793\u17D2\u1793\u1793\u17B9\u1784\u1794\u1789\u17D2\u1785\u1794\u17CB\u1780\u17D2\u1793\u17BB\u1784\u1780\u179A\u178E\u17B8\u178E\u17B6\u1798\u17BD\u1799\u178A\u17BC\u1785\u1781\u17B6\u1784\u1780\u17D2\u179A\u17C4\u1798\u17D6</h5>\n <div class=\"termination-items\">\n <p>\n <span class=\"text-orange\">\u1780)</span> \u1793\u17C5\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791\u178A\u17C2\u179B\u1780\u17D2\u179A\u17BB\u1798\u17A0\u17CA\u17BB\u1793\u1785\u17C1\u1789\u1794\u178E\u17D2\u178E\u179F\u1793\u17D2\u1799\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784 \u1794\u178A\u17B7\u179F\u17C1\u1792\n \u17AC\u1796\u1793\u17D2\u1799\u17B6\u179A\u1796\u17C1\u179B\u1796\u17B6\u1780\u17D2\u1799\u179F\u17D2\u1793\u17BE\u179F\u17BB\u17C6\u1787\u17B6<br>\u179B\u17B6\u1799\u179B\u1780\u17D2\u1781\u178E\u17CD\u17A2\u1780\u17D2\u179F\u179A\u17D4\n </p>\n <p>\n <span class=\"text-orange\">\u1781)</span>\n \u1793\u17C5\u1796\u17C1\u179B\u178A\u17C2\u179B\u1798\u17D2\u1785\u17B6\u179F\u17CB\u1794\u178E\u17D2\u178E\u179F\u1793\u17D2\u1799\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u1798\u17B7\u1793\u1791\u1791\u17BD\u179B\u1799\u1780\u179B\u1780\u17D2\u1781\u1781\u178E\u17D2\u178C\u1793\u17C3\u1780\u17B6\u179A\u1792\u17B6\u1793\u17B6\u178F\u17B6\u1798\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791\u1780\u17C6\u178E\u178F\u17CB\u17D4\n </p>\n <p>\n <span class=\"text-orange\">\u1782)</span>\n \u1793\u17C5\u1796\u17C1\u179B\u178A\u17C2\u179B\u1798\u17D2\u1785\u17B6\u179F\u17CB\u1794\u178E\u17D2\u178E\u179F\u1793\u17D2\u1799\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u1794\u17C4\u17C7\u1794\u1784\u17CB\u1780\u17B6\u179A\u178A\u17B6\u1780\u17CB\u1796\u17B6\u1780\u17D2\u1799\u179F\u17D2\u1793\u17BE\u179F\u17BB\u17C6\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u178A\u17C4\u1799\u179F\u17D2\u1798\u17D0\u1782\u17D2\u179A\u1785\u17B7\u178F\u17D2\u178F\u17D4\n </p>\n </div>\n </div>\n\n <!-- ===== SIGNATURE BLOCK ===== -->\n <div class=\"signature-section\">\n <div style=\"margin-left: 10mm;\">\n <table class=\"sig-table\">\n <tbody>\n <tr>\n <td width=\"50%\" class=\"text-center\">\n <p>\u17A2\u17D2\u1793\u1780\u178F\u17C6\u178E\u17B6\u1784\u1780\u17D2\u179A\u17BB\u1798\u17A0\u17CA\u17BB\u1793</p>\n <div class=\"sig-spacer\"></div>\n <p><%= authorized_officer_name %></p>\n <div class=\"sig-line-long\"></div>\n </td>\n <td width=\"15%\"></td>\n <td width=\"35%\" class=\"text-center\">\n <p>\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791</p>\n <div class=\"sig-spacer\"></div>\n <p><%= date_of_issue %></p>\n <div class=\"sig-line-short\"></div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n\n </div>\n</body>\n</html>\n";
|
|
1
|
+
export declare const COVER_NOTE_TERMLIFE_TEMPLATE = "\n<!DOCTYPE html>\n<html lang=\"km\">\n<head>\n <meta charset=\"UTF-8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/>\n <title>\u1780\u17C6\u178E\u178F\u17CB\u179F\u17C6\u17A2\u17B6\u1784 - Cover Note</title>\n <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n <link href=\"https://fonts.googleapis.com/css2?family=Hanuman:wght@100..900&family=Moul&display=swap\" rel=\"stylesheet\">\n <style>\n * { box-sizing: border-box; margin: 0; padding: 0; }\n\n body {\n font-family: \"Hanuman\", system-ui, sans-serif;\n background: #f0f0f0;\n display: flex;\n justify-content: center;\n padding: 40px 20px;\n }\n\n .container {\n background: #fff;\n width: 210mm;\n min-height: 297mm;\n padding: 20mm 20mm 20mm 20mm;\n box-shadow: 0 4px 24px rgba(0,0,0,0.12);\n position: relative;\n }\n\n p {\n line-height: 1.8;\n font-size: 13px;\n }\n\n h4 {\n font-size: 18px;\n padding: 0;\n margin: 0;\n }\n\n h5 {\n font-size: 14px;\n padding: 0;\n margin: 0;\n }\n\n table { width: 100%; border-collapse: collapse; }\n td { vertical-align: top; }\n\n .text-right { text-align: right; }\n .text-center { text-align: center; }\n\n .mt-2 { margin-top: 8px; }\n .mt-4 { margin-top: 10px; }\n .mt-6 { margin-top: 12px; }\n .mt-8 { margin-top: 16px; }\n .ml-4 { margin-left: 32px; }\n\n .text-orange {\n color: rgb(241, 90, 34);\n font-weight: 600;\n }\n\n /* Header logo row */\n .header-table td { padding: 0; }\n\n .logo img { height: 40px; width: 150px; object-fit: contain; }\n\n /* Fallback logo box if image not available */\n .logo-fallback {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n }\n .logo-fallback .logo-icon {\n width: 38px; height: 38px;\n background: #0d1f3c;\n color: #e2c96e;\n font-size: 18px; font-weight: 700;\n display: flex; align-items: center; justify-content: center;\n border-radius: 3px;\n }\n .logo-fallback .logo-brand {\n font-size: 17px; font-weight: 700;\n color: #0d1f3c;\n line-height: 1.1;\n }\n .logo-fallback .logo-tagline {\n font-size: 9px; color: #888;\n text-transform: uppercase; letter-spacing: 0.08em;\n }\n\n .doc-no-cell {\n vertical-align: bottom;\n text-align: center;\n }\n\n .doc-no-cell p { font-size: 16px; }\n .doc-no-cell .no-value { font-weight: bold; color: red; }\n\n /* Title */\n .title-section { margin-top: 10mm; text-align: center; }\n\n /* Fields */\n .fields-section { margin-top: 10mm; }\n .fields-section p { font-size: 13px; }\n .fields-section p span { font-weight: bold; }\n\n /* Body paragraphs */\n .body-section { margin-top: 5mm; }\n .body-section p { font-size: 13px; line-height: 1.8; }\n\n /* Termination */\n .termination-section { margin-top: 10mm; }\n .termination-section h5 { color: #000; }\n .termination-items { margin-left: 10mm; margin-top: 2mm; }\n .termination-items p { font-size: 13px; }\n\n /* Signature */\n .signature-section { margin-top: 20mm; }\n .sig-table td { text-align: center; vertical-align: bottom; }\n .sig-table p { font-size: 13px; }\n .sig-line-long { border-top: 1px solid #000; margin-top: 4px; display: inline-block; width: 240px; }\n .sig-line-short { border-top: 1px solid #000; margin-top: 4px; display: inline-block; width: 160px; }\n .sig-spacer { height: 30mm; }\n\n @media print {\n body { background: none; padding: 0; }\n .container { box-shadow: none; }\n }\n\n @media (max-width: 640px) {\n .container { width: 100%; padding: 24px 16px; min-height: unset; }\n }\n </style>\n</head>\n<body>\n <div class=\"container\">\n\n <!-- ===== HEADER ===== -->\n <table class=\"header-table\">\n <tr>\n <td width=\"50%\" style=\"vertical-align: middle;\">\n <div class=\"logo\">\n <!-- If logo image is available, swap src. Fallback shown below. -->\n <img src=\"data:image/png;base64,<%= logo_base64 %>\" alt=\"Logo\" class=\"title-logo\" style=\"width: 150px; height: auto;\" />\n </div>\n </td>\n <td></td>\n <td width=\"30%\" class=\"doc-no-cell\" style=\"vertical-align: middle; text-align: right;\">\n <p style=\"font-size: 16px;\">No. <span class=\"no-value\"><%= cover_note_no %></span></p>\n </td>\n </tr>\n </table>\n\n <!-- ===== TITLE ===== -->\n <div class=\"title-section\">\n <h4>\u1780\u17C6\u178E\u178F\u17CB\u179F\u17C6\u17A2\u17B6\u1784</h4>\n <!-- <h4>Cover Note</h4> -->\n </div>\n\n <!-- ===== FIELDS ===== -->\n <div class=\"fields-section\">\n <div>\n <p>\u1796\u17B6\u1780\u17D2\u1799\u179F\u17D2\u1793\u17BE\u179F\u17BB\u17C6\u179B\u17C1\u1781:\n <span><%= application_no %></span>\n </p>\n </div>\n <div>\n <p>\u1798\u17D2\u1785\u17B6\u179F\u17CB\u1794\u178E\u17D2\u178E\u179F\u1793\u17D2\u1799\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784:\n <span><%= ph_full_name %></span>\n </p>\n </div>\n <div>\n <p>\u17A2\u17D2\u1793\u1780\u178F\u17D2\u179A\u17BC\u179C\u1794\u17B6\u1793\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784:\n <span><%= la_full_name %></span>\n </p>\n </div>\n <div>\n <p>\u1794\u17BB\u1796\u17D2\u179C\u179B\u17B6\u1797\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u178A\u17C2\u179B\u1794\u17B6\u1793\u1794\u1784\u17CB\u178A\u17C6\u1794\u17BC\u1784:\n <span><%= initial_premium_amount %></span>\n </p>\n </div>\n <div>\n <p>\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798:\n <span><%= commencement_date %></span>\n </p>\n </div>\n </div>\n\n <!-- ===== BODY TEXT ===== -->\n <div class=\"body-section\">\n <p style=\"line-height: 1.8;\">\n \u1780\u17D2\u179A\u17C4\u1799\u1796\u17B8\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793\u1796\u17B6\u1780\u17D2\u1799\u179F\u17D2\u1793\u17BE\u179F\u17BB\u17C6\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u17A2\u17B6\u1799\u17BB\u1787\u17B8\u179C\u17B7\u178F \u1793\u17B7\u1784\u1794\u17BB\u1796\u17D2\u179C\u179B\u17B6\u1797\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u178A\u17C6\u1794\u17BC\u1784 \u1780\u17D2\u179A\u17BB\u1798\u17A0\u17CA\u17BB\u1793\u1793\u17B9\u1784\u1795\u17D2\u178A\u179B\u17CB\u1780\u17B6\u179A\u1792\u17B6\u1793\u17B6\n \u1794\u178E\u17D2\u178F\u17C4\u17C7\u17A2\u17B6\u179F\u1793\u17D2\u1793\u17B2\u17D2\u1799\u17A2\u17D2\u1793\u1780\u178F\u17D2\u179A\u17BC\u179C\u1794\u17B6\u1793\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u179F\u17D2\u1798\u17BE\u1793\u17B9\u1784\u1785\u17C6\u1793\u17BD\u1793\u1791\u17B9\u1780\u1794\u17D2\u179A\u17B6\u1780\u17CB\u178F\u17D2\u179A\u17BC\u179C\u1794\u17B6\u1793\u1792\u17B6\u1793\u17B6\u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1798\u17B7\u1793\u179B\u17BE\u179F\u1796\u17B8 <span\n class=\"text-orange\">\u17E2\u17E5\u17E0\u17E0\u178A\u17BB\u179B\u17D2\u179B\u17B6\u179A\u17A2\u17B6\u1798\u17C1\u179A\u17B7\u1780</span>\n \u1780\u17D2\u1793\u17BB\u1784\u1780\u179A\u178E\u17B8\u1798\u179A\u178E\u1797\u17B6\u1796\u178A\u17C2\u179B\u1794\u178E\u17D2\u178F\u17B6\u179B\u1798\u1780\u1796\u17B8\u1782\u17D2\u179A\u17C4\u17C7\u1790\u17D2\u1793\u17B6\u1780\u17CB\u178A\u17C4\u1799\u1798\u17B7\u1793\u1782\u17B7\u178F\u1796\u17B8\u1785\u17C6\u1793\u17BD\u1793\u1796\u17B6\u1780\u17D2\u1799\u179F\u17D2\u1793\u17BE\u179F\u17BB\u17C6\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784 \u17AC\n \u1785\u17C6\u1793\u17BD\u1793\u1791\u17B9\u1780\u1794\u17D2\u179A\u17B6\u1780\u17CB\u178F\u17D2\u179A\u17BC\u179C\u1794\u17B6\u1793\u1792\u17B6\u1793\u17B6\u178A\u17C2\u179B\u1794\u17B6\u1793\u179F\u17D2\u1793\u17BE\u179F\u17BB\u17C6\u17A1\u17BE\u1799\u17D4 \u1780\u17D2\u1793\u17BB\u1784\u1780\u179A\u178E\u17B8\u178A\u17C2\u179B\u1794\u17BB\u1796\u17D2\u179C\u179B\u17B6\u1797\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u179F\u179A\u17BB\u1794\u1798\u17B6\u1793\u1785\u17C6\u1793\u17BD\u1793\u1785\u17D2\u179A\u17BE\u1793\n \u1787\u17B6\u1784 <span class=\"text-orange\">\u17E2\u17E5\u17E0\u17E0\u178A\u17BB\u179B\u17D2\u179B\u17B6\u179A\u17A2\u17B6\u1798\u17C1\u179A\u17B7\u1780</span>\n \u1780\u17D2\u179A\u17BB\u1798\u17A0\u17CA\u17BB\u1793\u1793\u17B9\u1784\u1795\u17D2\u178F\u179B\u17CB\u1787\u17BC\u1793\u179C\u17B7\u1789\u1793\u17BC\u179C\u1794\u17BB\u1796\u17D2\u179C\u179B\u17B6\u1797\u178A\u17C2\u179B\u1794\u17B6\u1793\u1794\u1784\u17CB\u1793\u17C4\u17C7\u178A\u17C4\u1799\u1796\u17BB\u17C6\u1798\u17B6\u1793\u1780\u17B6\u179A\u1794\u17D2\u179A\u17B6\u1780\u17CB\n \u1787\u17C6\u1793\u17BD\u179F\u17B2\u17D2\u1799\u1780\u17B6\u179A\u1791\u17BC\u1791\u17B6\u178F\u17CB\u17A2\u178F\u17D2\u1790\u1794\u17D2\u179A\u1799\u17C4\u1787\u1793\u17CD\u1780\u17B6\u179A\u1792\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u1794\u178E\u17D2\u178A\u17C4\u17C7\u17A2\u17B6\u179F\u1793\u17D2\u1793\u17D4\n </p>\n <p style=\"line-height: 1.8;margin-top: 5mm;\">\n \u1780\u17D2\u1793\u17BB\u1784\u1780\u179A\u178E\u17B8\u1780\u17B6\u179A\u1792\u17B6\u1793\u17B6\u1794\u178E\u17D2\u178F\u17C4\u17C7\u17A2\u17B6\u179F\u1793\u17D2\u1793\u1798\u17B7\u1793\u178F\u17D2\u179A\u17BC\u179C\u1794\u17B6\u1793\u1795\u17D2\u178F\u179B\u17CB\u1787\u17BC\u1793\u1799\u17C4\u1784\u1791\u17C5\u178F\u17B6\u1798 \u201C\u1781 \u1793\u17B7\u1784\u179B\u1780\u17D2\u1781\u1781\u178E\u17D2\u178C\u201D \u179A\u1794\u179F\u17CB\u1780\u17D2\u179A\u17BB\u1798\u17A0\u17CA\u17BB\u1793\u1793\u17C4\u17C7\u1791\u17C1\n \u1780\u17D2\u179A\u17BB\u1798\u17A0\u17CA\u17BB\u1793\u1793\u17B9\u1784\u1795\u17D2\u178F\u179B\u17CB\u1787\u17BC\u1793\u179C\u17B7\u1789\u1793\u17BC\u179C\u1791\u17B9\u1780\u1794\u17D2\u179A\u17B6\u1780\u17CB\u1794\u17BB\u1796\u17D2\u179C\u179B\u17B6\u1797\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u178A\u17C2\u179B\u1794\u17B6\u1793\u1794\u1784\u17CB\u178A\u17C4\u1799\u1796\u17BB\u17C6\u1798\u17B6\u1793\u1780\u17B6\u179A\u1794\u17D2\u179A\u17B6\u1780\u17CB\u17A1\u17BE\u1799\u17D4\n </p>\n </div>\n\n <!-- ===== TERMINATION CONDITIONS ===== -->\n <div class=\"termination-section\">\n <h5>\u1780\u17B6\u179A\u1792\u17B6\u1793\u17B6\u1794\u178E\u17D2\u178F\u17C4\u17C7\u17A2\u17B6\u179F\u1793\u17D2\u1793\u1793\u17B9\u1784\u1794\u1789\u17D2\u1785\u1794\u17CB\u1780\u17D2\u1793\u17BB\u1784\u1780\u179A\u178E\u17B8\u178E\u17B6\u1798\u17BD\u1799\u178A\u17BC\u1785\u1781\u17B6\u1784\u1780\u17D2\u179A\u17C4\u1798\u17D6</h5>\n <div class=\"termination-items\">\n <p>\n <span class=\"text-orange\">\u1780)</span> \u1793\u17C5\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791\u178A\u17C2\u179B\u1780\u17D2\u179A\u17BB\u1798\u17A0\u17CA\u17BB\u1793\u1785\u17C1\u1789\u1794\u178E\u17D2\u178E\u179F\u1793\u17D2\u1799\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784 \u1794\u178A\u17B7\u179F\u17C1\u1792\n \u17AC\u1796\u1793\u17D2\u1799\u17B6\u179A\u1796\u17C1\u179B\u1796\u17B6\u1780\u17D2\u1799\u179F\u17D2\u1793\u17BE\u179F\u17BB\u17C6\u1787\u17B6<br>\u179B\u17B6\u1799\u179B\u1780\u17D2\u1781\u178E\u17CD\u17A2\u1780\u17D2\u179F\u179A\u17D4\n </p>\n <p>\n <span class=\"text-orange\">\u1781)</span>\n \u1793\u17C5\u1796\u17C1\u179B\u178A\u17C2\u179B\u1798\u17D2\u1785\u17B6\u179F\u17CB\u1794\u178E\u17D2\u178E\u179F\u1793\u17D2\u1799\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u1798\u17B7\u1793\u1791\u1791\u17BD\u179B\u1799\u1780\u179B\u1780\u17D2\u1781\u1781\u178E\u17D2\u178C\u1793\u17C3\u1780\u17B6\u179A\u1792\u17B6\u1793\u17B6\u178F\u17B6\u1798\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791\u1780\u17C6\u178E\u178F\u17CB\u17D4\n </p>\n <p>\n <span class=\"text-orange\">\u1782)</span>\n \u1793\u17C5\u1796\u17C1\u179B\u178A\u17C2\u179B\u1798\u17D2\u1785\u17B6\u179F\u17CB\u1794\u178E\u17D2\u178E\u179F\u1793\u17D2\u1799\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u1794\u17C4\u17C7\u1794\u1784\u17CB\u1780\u17B6\u179A\u178A\u17B6\u1780\u17CB\u1796\u17B6\u1780\u17D2\u1799\u179F\u17D2\u1793\u17BE\u179F\u17BB\u17C6\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784\u178A\u17C4\u1799\u179F\u17D2\u1798\u17D0\u1782\u17D2\u179A\u1785\u17B7\u178F\u17D2\u178F\u17D4\n </p>\n </div>\n </div>\n\n <!-- ===== SIGNATURE BLOCK ===== -->\n <div class=\"signature-section\">\n <div style=\"margin-left: 10mm;\">\n <table class=\"sig-table\">\n <tbody>\n <tr>\n <td width=\"50%\" class=\"text-center\">\n <p>\u17A2\u17D2\u1793\u1780\u178F\u17C6\u178E\u17B6\u1784\u1780\u17D2\u179A\u17BB\u1798\u17A0\u17CA\u17BB\u1793</p>\n <div class=\"sig-spacer\"></div>\n <p><%= authorized_officer_name %></p>\n <div class=\"sig-line-long\"></div>\n </td>\n <td width=\"15%\"></td>\n <td width=\"35%\" class=\"text-center\">\n <p>\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791</p>\n <div class=\"sig-spacer\"></div>\n <p><%= date_of_issue %></p>\n <div class=\"sig-line-short\"></div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n\n </div>\n</body>\n</html>\n";
|
|
@@ -32,21 +32,18 @@ exports.COVER_NOTE_TERMLIFE_TEMPLATE = `
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
p {
|
|
35
|
-
font-family: 'Noto Sans Khmer', sans-serif;
|
|
36
35
|
line-height: 1.8;
|
|
37
36
|
font-size: 13px;
|
|
38
37
|
}
|
|
39
38
|
|
|
40
39
|
h4 {
|
|
41
40
|
font-size: 18px;
|
|
42
|
-
font-family: 'Noto Sans Khmer', sans-serif;
|
|
43
41
|
padding: 0;
|
|
44
42
|
margin: 0;
|
|
45
43
|
}
|
|
46
44
|
|
|
47
45
|
h5 {
|
|
48
46
|
font-size: 14px;
|
|
49
|
-
font-family: 'Noto Sans Khmer', sans-serif;
|
|
50
47
|
padding: 0;
|
|
51
48
|
margin: 0;
|
|
52
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const RECEIPT_TEMPLATE = "\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/>\n <title>\u1794\u1784\u17D2\u1780\u17B6\u1793\u17CB\u178A\u17C3\u1791\u1791\u17BD\u179B\u1794\u17D2\u179A\u17B6\u1780\u17CB - OFFICIAL RECEIPT</title>\n <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n <link href=\"https://fonts.googleapis.com/css2?family=Hanuman:wght@100..900&family=Moul&display=swap\" rel=\"stylesheet\">\n <style>\n * { \n box-sizing: border-box; \n margin: 0; padding: 0; \n }\n\n body {\n font-family: \"Hanuman\", system-ui, sans-serif;\n background: #f0f0f0;\n display: flex;\n justify-content: center;\n padding: 40px 20px;\n }\n\n .container {\n background: #fff;\n width: 210mm;\n min-height: 297mm;\n padding: 14mm 14mm 14mm 14mm;\n box-shadow: 0 4px 24px rgba(0,0,0,0.12);\n }\n\n /* \u2500\u2500 Header \u2500\u2500 */\n .header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 24px;\n padding-bottom: 20px;\n border-bottom: 1.5px solid var(--rule);\n margin-bottom: 24px;\n }\n\n .company-block { flex: 1; }\n\n .company-name-kh {\n font-family: 'Noto Serif Khmer', serif;\n font-size: 13px;\n font-weight: 700;\n color: var(--ink);\n line-height: 1.6;\n }\n\n .company-name-en {\n font-size: 15px;\n font-weight: 600;\n color: var(--ink);\n margin-top: 2px;\n }\n\n .company-address {\n font-size: 12px;\n color: var(--muted);\n line-height: 1.7;\n margin-top: 6px;\n }\n\n /* \u2500\u2500 Title \u2500\u2500 */\n .receipt-title-block {\n text-align: end;\n margin-top: 24px;\n }\n\n .receipt-title {\n font-size: 20px;\n font-weight: bold;\n letter-spacing: 0.05em;\n }\n\n .receipt-meta {\n display: flex;\n justify-content: center;\n }\n\n .receipt-meta-inner {\n display: flex;\n flex-direction: column;\n }\n\n .receipt-meta-row {\n display: flex;\n }\n\n .receipt-meta-label {\n width: 220px;\n text-align: left;\n }\n\n .receipt-meta-colon {\n width: 12px;\n text-align: center;\n }\n\n .receipt-meta-value {\n margin-left: 6px;\n }\n\n @media print {\n body { background: none; padding: 0; }\n .container { box-shadow: none; }\n }\n\n @media (max-width: 640px) {\n .container { width: 100%; padding: 24px 16px; min-height: unset; }\n }\n </style>\n</head>\n<body>\n <div class=\"container\">\n\n <!-- ===== Header ===== -->\n <div class=\"header\">\n <div class=\"company-block\">\n <div class=\"company-name-kh\">\u17A0\u17D2\u179C\u17B8\u179B\u17B8\u1796 \u17A1\u17B6\u1799\u17A0\u17D2\u179C\u17CD \u17A2\u17B6\u179F\u17BD\u179A\u17C1\u1793 (\u179A\u200B\u1781\u200B\u1798\u1794\u17BC\u178C\u17B6) \u1798.\u1780</div>\n <div class=\"company-name-en\">Phillip Life Assurance (Cambodia) PLC.</div>\n <div class=\"company-address\">\n \u17A2\u17B6\u1782\u17B6\u179A\u179B\u17C1\u1781 27AB \u1798\u17A0\u17B6\u179C\u17B7\u1790\u17B8\u1796\u17D2\u179A\u17C7\u1798\u17BB\u1793\u17B8\u179C\u1784\u17D2\u179F \u179F\u1784\u17D2\u1780\u17B6\u178F\u17CB\u179F\u17D2\u179A\u17C7\u1785\u1780 \u1781\u178E\u17D2\u178C\u178A\u17BC\u1793\u1796\u17C1\u1789 \u179A\u17B6\u1787\u1792\u17B6\u1793\u17B8\u1797\u17D2\u1793\u17C6\u1796\u17C1\u1789 \u1794\u17D2\u179A\u1791\u17C1\u179F\u1780\u1798\u17D2\u1796\u17BB\u1787\u17B6 <br>\n\n #27AB, Preah Monivong Blvd, Sangkat Srah Chork, Khan Daun Penh<br/>\n Phnom Penh, Kingdom of Cambodia<br/>\n \u1791\u17BC\u179A\u179F\u17D0\u1796\u17D2\u1791/Tel: (855) 23 426 888\n </div>\n </div>\n </div>\n\n <!-- ===== TITLE ===== -->\n <div class=\"receipt-title-block\">\n <p class=\"receipt-title\"> \u1794\u1784\u17D2\u1780\u17B6\u1793\u17CB\u178A\u17C3\u1791\u1791\u17BD\u179B\u1794\u17D2\u179A\u17B6\u1780\u17CB / Official Receipt </p>\n <div class=\"receipt-meta\" style=\"justify-content: flex-end;\">\n <div class=\"receipt-meta-inner\">\n <div class=\"receipt-meta-row\">\n <span class=\"receipt-meta-label\">\u1794\u1784\u17D2\u1780\u17B6\u1793\u17CB\u178A\u17C3\u179B\u17C1\u1781/Official Receipt</span>\n <span class=\"receipt-meta-colon\">:</span>\n <span class=\"receipt-meta-value\"><%= receipt_no %></span>\n </div>\n <div class=\"receipt-meta-row\">\n <span class=\"receipt-meta-label\">\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791/Date</span>\n <span class=\"receipt-meta-colon\">:</span>\n <span class=\"receipt-meta-value\"><%= receipt_date %></span>\n </div>\n <div class=\"receipt-meta-row\">\n <span class=\"receipt-meta-label\">\u1798\u17C9\u17C4\u1784/Time</span>\n <span class=\"receipt-meta-colon\">:</span>\n <span class=\"receipt-meta-value\"><%= receipt_time %></span>\n </div>\n <div class=\"receipt-meta-row\">\n <span class=\"receipt-meta-label\">\u17A2\u17D2\u1793\u1780\u1791\u1791\u17BD\u179B\u1794\u17D2\u179A\u17B6\u1780\u17CB/Receipt by</span>\n <span class=\"receipt-meta-colon\">:</span>\n <span class=\"receipt-meta-value\"><%= receipt_by %></span>\n </div>\n </div>\n </div>\n </div>\n\n <br>\n <!-- ===== Detail ===== -->\n <div class=\"receipt-meta\" style=\"justify-content: flex-start;\">\n <div class=\"receipt-meta-inner\" style=\"gap: 32px;\">\n <div class=\"receipt-meta-row\">\n <span class=\"receipt-meta-label\" style=\"width: 280px;\">\u1788\u17D2\u1798\u17C4\u17C7\u17A2\u178F\u17B7\u1790\u17B7\u1787\u1793 <br> Customer's Name</span>\n <span class=\"receipt-meta-colon\">:</span>\n <span class=\"receipt-meta-value\"><%= customer_name %></span>\n </div>\n <div class=\"receipt-meta-row\">\n <span class=\"receipt-meta-label\" style=\"width: 280px;\">\u1796\u17B6\u1780\u17D2\u1799\u179F\u17D2\u1793\u17BE\u179A\u179F\u17BB\u17C6\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784 \u17AC\u1794\u178E\u17D2\u178E\u179F\u1793\u17D2\u1799\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784 <br> Application or Policy Number</span>\n <span class=\"receipt-meta-colon\">:</span>\n <span class=\"receipt-meta-value\"><%= application_no %></span>\n </div>\n <div class=\"receipt-meta-row\">\n <span class=\"receipt-meta-label\" style=\"width: 280px;\">\u1785\u17C6\u1793\u17BD\u1793\u1791\u17B9\u1780\u1794\u17D2\u179A\u17B6\u1780\u17CB (\u178A\u17BB\u179B\u17D2\u179B\u17B6\u17A2\u17B6\u1798\u17C1\u179A\u17B7\u1780) <br> Amount (USD)</span>\n <span class=\"receipt-meta-colon\">:</span>\n <span class=\"receipt-meta-value\"><%= amount %></span>\n </div>\n <div style=\"display: flex; gap: 128px;\">\n <div class=\"receipt-meta-row\" style=\"align-items: flex-start;\">\n <span class=\"receipt-meta-label\">\u179A\u17BC\u1794\u17B7\u1799\u1794\u17D0\u178E\u17D2\u178E\u1794\u1784\u17CB\u1794\u17D2\u179A\u17B6\u1780\u17CB <br> Payment Currency</span>\n <span class=\"receipt-meta-colon\">:</span>\n <span class=\"receipt-meta-value\"><%= currency %></span>\n </div>\n <div class=\"receipt-meta-row\" style=\"align-items: flex-start;\">\n <span class=\"receipt-meta-label\" style=\"width: 160px;\">\u17A2\u178F\u17D2\u179A\u17B6\u1794\u17D2\u178F\u17BC\u179A\u1794\u17D2\u179A\u17B6\u1780\u17CB <br> Exchange Rate</span>\n <span class=\"receipt-meta-colon\">:</span>\n <span class=\"receipt-meta-value\"><%= exchange_rate %></span>\n </div>\n </div>\n <div class=\"receipt-meta-row\">\n <span class=\"receipt-meta-label\" style=\"width: 280px;\">\u1785\u17C6\u1793\u17BD\u1793\u1791\u17B9\u1780\u1794\u17D2\u179A\u17B6\u1780\u17CB <br> Paid Amount</span>\n <span class=\"receipt-meta-colon\">:</span>\n <div style=\"display: flex; gap: 128px;\">\n <span class=\"receipt-meta-value\">USD <%= paid_amount_in_usd %></span>\n <span class=\"receipt-meta-value\">KHR <%= paid_amount_in_khr %></span>\n </div>\n \n </div>\n </div>\n </div>\n\n\n <br>\n <!-- ===== Remark ===== -->\n <div style=\"margin-top: 4px;\">\n <span style=\"text-decoration: underline;\">\u179F\u1798\u17D2\u1782\u17B6\u179B\u17CB / Remark</span><br>\n <span>\u1794\u1784\u17D2\u1782\u17B6\u1793\u17CB\u178A\u17C3\u1791\u1791\u17BD\u179B\u1794\u17D2\u179A\u17B6\u1780\u17CB\u1793\u17C1\u17C7\u178F\u17D2\u179A\u17BC\u179C\u1794\u17B6\u1793\u1794\u1784\u17D2\u1780\u17BE\u178F\u17A1\u17BE\u1784\u178A\u17C4\u1799\u1794\u17D2\u179A\u1796\u17D0\u1793\u17D2\u1792\u179F\u17D2\u179C\u17B7\u1799\u1794\u17D2\u179A\u179C\u178F\u17D2\u178A\u17B7 \u1793\u17B7\u1784\u1798\u17B7\u1793\u178F\u1798\u17D2\u179A\u17BC\u179C\u17A2\u17C4\u1799\u1798\u17B6\u1793\u1780\u17B6\u179A\u1785\u17BB\u17C7\u17A0\u178F\u17D2\u1790\u179B\u17C1\u1781\u17B6 \u17AC \u178F\u17D2\u179A\u17B6\u1791\u17C1\u17D4</span><br>\n <span>This official Receipt is auto-generated by the system, no signature or stamp is required.</span>\n </div>\n\n </div>\n</body>\n</html>\n";
|
|
1
|
+
export declare const RECEIPT_TEMPLATE = "\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/>\n <title>\u1794\u1784\u17D2\u1780\u17B6\u1793\u17CB\u178A\u17C3\u1791\u1791\u17BD\u179B\u1794\u17D2\u179A\u17B6\u1780\u17CB - OFFICIAL RECEIPT</title>\n <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n <link href=\"https://fonts.googleapis.com/css2?family=Hanuman:wght@100..900&family=Moul&display=swap\" rel=\"stylesheet\">\n <style>\n * { \n box-sizing: border-box; \n margin: 0; padding: 0; \n }\n\n body {\n font-family: \"Hanuman\", system-ui, sans-serif;\n background: #f0f0f0;\n display: flex;\n justify-content: center;\n padding: 40px 20px;\n }\n\n .container {\n background: #fff;\n width: 210mm;\n min-height: 297mm;\n padding: 14mm 14mm 14mm 14mm;\n box-shadow: 0 4px 24px rgba(0,0,0,0.12);\n }\n\n /* \u2500\u2500 Header \u2500\u2500 */\n .header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 24px;\n padding-bottom: 20px;\n border-bottom: 1.5px solid var(--rule);\n margin-bottom: 24px;\n }\n\n .company-block { flex: 1; }\n\n .company-name-kh {\n font-size: 13px;\n font-weight: 700;\n color: var(--ink);\n line-height: 1.6;\n }\n\n .company-name-en {\n font-size: 15px;\n font-weight: 600;\n color: var(--ink);\n margin-top: 2px;\n }\n\n .company-address {\n font-size: 12px;\n color: var(--muted);\n line-height: 1.7;\n margin-top: 6px;\n }\n\n /* \u2500\u2500 Title \u2500\u2500 */\n .receipt-title-block {\n text-align: end;\n margin-top: 24px;\n }\n\n .receipt-title {\n font-size: 20px;\n font-weight: bold;\n letter-spacing: 0.05em;\n }\n\n .receipt-meta {\n display: flex;\n justify-content: center;\n }\n\n .receipt-meta-inner {\n display: flex;\n flex-direction: column;\n }\n\n .receipt-meta-row {\n display: flex;\n }\n\n .receipt-meta-label {\n width: 220px;\n text-align: left;\n }\n\n .receipt-meta-colon {\n width: 12px;\n text-align: center;\n }\n\n .receipt-meta-value {\n margin-left: 6px;\n }\n\n @media print {\n body { background: none; padding: 0; }\n .container { box-shadow: none; }\n }\n\n @media (max-width: 640px) {\n .container { width: 100%; padding: 24px 16px; min-height: unset; }\n }\n </style>\n</head>\n<body>\n <div class=\"container\">\n\n <!-- ===== Header ===== -->\n <div class=\"header\">\n <div class=\"company-block\">\n <div class=\"company-name-kh\">\u17A0\u17D2\u179C\u17B8\u179B\u17B8\u1796 \u17A1\u17B6\u1799\u17A0\u17D2\u179C\u17CD \u17A2\u17B6\u179F\u17BD\u179A\u17C1\u1793 (\u179A\u200B\u1781\u200B\u1798\u1794\u17BC\u178C\u17B6) \u1798.\u1780</div>\n <div class=\"company-name-en\">Phillip Life Assurance (Cambodia) PLC.</div>\n <div class=\"company-address\">\n \u17A2\u17B6\u1782\u17B6\u179A\u179B\u17C1\u1781 27AB \u1798\u17A0\u17B6\u179C\u17B7\u1790\u17B8\u1796\u17D2\u179A\u17C7\u1798\u17BB\u1793\u17B8\u179C\u1784\u17D2\u179F \u179F\u1784\u17D2\u1780\u17B6\u178F\u17CB\u179F\u17D2\u179A\u17C7\u1785\u1780 \u1781\u178E\u17D2\u178C\u178A\u17BC\u1793\u1796\u17C1\u1789 \u179A\u17B6\u1787\u1792\u17B6\u1793\u17B8\u1797\u17D2\u1793\u17C6\u1796\u17C1\u1789 \u1794\u17D2\u179A\u1791\u17C1\u179F\u1780\u1798\u17D2\u1796\u17BB\u1787\u17B6 <br>\n\n #27AB, Preah Monivong Blvd, Sangkat Srah Chork, Khan Daun Penh<br/>\n Phnom Penh, Kingdom of Cambodia<br/>\n \u1791\u17BC\u179A\u179F\u17D0\u1796\u17D2\u1791/Tel: (855) 23 426 888\n </div>\n </div>\n </div>\n\n <!-- ===== TITLE ===== -->\n <div class=\"receipt-title-block\">\n <p class=\"receipt-title\"> \u1794\u1784\u17D2\u1780\u17B6\u1793\u17CB\u178A\u17C3\u1791\u1791\u17BD\u179B\u1794\u17D2\u179A\u17B6\u1780\u17CB / Official Receipt </p>\n <div class=\"receipt-meta\" style=\"justify-content: flex-end;\">\n <div class=\"receipt-meta-inner\">\n <div class=\"receipt-meta-row\">\n <span class=\"receipt-meta-label\">\u1794\u1784\u17D2\u1780\u17B6\u1793\u17CB\u178A\u17C3\u179B\u17C1\u1781/Official Receipt</span>\n <span class=\"receipt-meta-colon\">:</span>\n <span class=\"receipt-meta-value\"><%= receipt_no %></span>\n </div>\n <div class=\"receipt-meta-row\">\n <span class=\"receipt-meta-label\">\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791/Date</span>\n <span class=\"receipt-meta-colon\">:</span>\n <span class=\"receipt-meta-value\"><%= receipt_date %></span>\n </div>\n <div class=\"receipt-meta-row\">\n <span class=\"receipt-meta-label\">\u1798\u17C9\u17C4\u1784/Time</span>\n <span class=\"receipt-meta-colon\">:</span>\n <span class=\"receipt-meta-value\"><%= receipt_time %></span>\n </div>\n <div class=\"receipt-meta-row\">\n <span class=\"receipt-meta-label\">\u17A2\u17D2\u1793\u1780\u1791\u1791\u17BD\u179B\u1794\u17D2\u179A\u17B6\u1780\u17CB/Receipt by</span>\n <span class=\"receipt-meta-colon\">:</span>\n <span class=\"receipt-meta-value\"><%= receipt_by %></span>\n </div>\n </div>\n </div>\n </div>\n\n <br>\n <!-- ===== Detail ===== -->\n <div class=\"receipt-meta\" style=\"justify-content: flex-start;\">\n <div class=\"receipt-meta-inner\" style=\"gap: 32px;\">\n <div class=\"receipt-meta-row\">\n <span class=\"receipt-meta-label\" style=\"width: 280px;\">\u1788\u17D2\u1798\u17C4\u17C7\u17A2\u178F\u17B7\u1790\u17B7\u1787\u1793 <br> Customer's Name</span>\n <span class=\"receipt-meta-colon\">:</span>\n <span class=\"receipt-meta-value\"><%= customer_name %></span>\n </div>\n <div class=\"receipt-meta-row\">\n <span class=\"receipt-meta-label\" style=\"width: 280px;\">\u1796\u17B6\u1780\u17D2\u1799\u179F\u17D2\u1793\u17BE\u179A\u179F\u17BB\u17C6\u1792\u17B6\u1793\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784 \u17AC\u1794\u178E\u17D2\u178E\u179F\u1793\u17D2\u1799\u17B6\u179A\u17C9\u17B6\u1794\u17CB\u179A\u1784 <br> Application or Policy Number</span>\n <span class=\"receipt-meta-colon\">:</span>\n <span class=\"receipt-meta-value\"><%= application_no %></span>\n </div>\n <div class=\"receipt-meta-row\">\n <span class=\"receipt-meta-label\" style=\"width: 280px;\">\u1785\u17C6\u1793\u17BD\u1793\u1791\u17B9\u1780\u1794\u17D2\u179A\u17B6\u1780\u17CB (\u178A\u17BB\u179B\u17D2\u179B\u17B6\u17A2\u17B6\u1798\u17C1\u179A\u17B7\u1780) <br> Amount (USD)</span>\n <span class=\"receipt-meta-colon\">:</span>\n <span class=\"receipt-meta-value\"><%= amount %></span>\n </div>\n <div style=\"display: flex; gap: 128px;\">\n <div class=\"receipt-meta-row\" style=\"align-items: flex-start;\">\n <span class=\"receipt-meta-label\">\u179A\u17BC\u1794\u17B7\u1799\u1794\u17D0\u178E\u17D2\u178E\u1794\u1784\u17CB\u1794\u17D2\u179A\u17B6\u1780\u17CB <br> Payment Currency</span>\n <span class=\"receipt-meta-colon\">:</span>\n <span class=\"receipt-meta-value\"><%= currency %></span>\n </div>\n <div class=\"receipt-meta-row\" style=\"align-items: flex-start;\">\n <span class=\"receipt-meta-label\" style=\"width: 160px;\">\u17A2\u178F\u17D2\u179A\u17B6\u1794\u17D2\u178F\u17BC\u179A\u1794\u17D2\u179A\u17B6\u1780\u17CB <br> Exchange Rate</span>\n <span class=\"receipt-meta-colon\">:</span>\n <span class=\"receipt-meta-value\"><%= exchange_rate %></span>\n </div>\n </div>\n <div class=\"receipt-meta-row\">\n <span class=\"receipt-meta-label\" style=\"width: 280px;\">\u1785\u17C6\u1793\u17BD\u1793\u1791\u17B9\u1780\u1794\u17D2\u179A\u17B6\u1780\u17CB <br> Paid Amount</span>\n <span class=\"receipt-meta-colon\">:</span>\n <div style=\"display: flex; gap: 128px;\">\n <span class=\"receipt-meta-value\">USD <%= paid_amount_in_usd %></span>\n <span class=\"receipt-meta-value\">KHR <%= paid_amount_in_khr %></span>\n </div>\n \n </div>\n </div>\n </div>\n\n\n <br>\n <!-- ===== Remark ===== -->\n <div style=\"margin-top: 4px;\">\n <span style=\"text-decoration: underline;\">\u179F\u1798\u17D2\u1782\u17B6\u179B\u17CB / Remark</span><br>\n <span>\u1794\u1784\u17D2\u1782\u17B6\u1793\u17CB\u178A\u17C3\u1791\u1791\u17BD\u179B\u1794\u17D2\u179A\u17B6\u1780\u17CB\u1793\u17C1\u17C7\u178F\u17D2\u179A\u17BC\u179C\u1794\u17B6\u1793\u1794\u1784\u17D2\u1780\u17BE\u178F\u17A1\u17BE\u1784\u178A\u17C4\u1799\u1794\u17D2\u179A\u1796\u17D0\u1793\u17D2\u1792\u179F\u17D2\u179C\u17B7\u1799\u1794\u17D2\u179A\u179C\u178F\u17D2\u178A\u17B7 \u1793\u17B7\u1784\u1798\u17B7\u1793\u178F\u1798\u17D2\u179A\u17BC\u179C\u17A2\u17C4\u1799\u1798\u17B6\u1793\u1780\u17B6\u179A\u1785\u17BB\u17C7\u17A0\u178F\u17D2\u1790\u179B\u17C1\u1781\u17B6 \u17AC \u178F\u17D2\u179A\u17B6\u1791\u17C1\u17D4</span><br>\n <span>This official Receipt is auto-generated by the system, no signature or stamp is required.</span>\n </div>\n\n </div>\n</body>\n</html>\n";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { _BaseEntity } from "../_base_entity";
|
|
2
2
|
import { AppFormType, ApplicationStatus, AppPhLaRelation } from "../../types";
|
|
3
|
-
import { OrganizationBranchEntity, OrganizationEntity, OrganizationStaffEntity } from "../core";
|
|
3
|
+
import { OrganizationBranchEntity, OrganizationEntity, OrganizationStaffEntity, OrgReferralEntity } from "../core";
|
|
4
4
|
import { AppCoverageEntity } from "./app_coverage.entity";
|
|
5
5
|
import { AppPersonEntity } from "./app_person.entity";
|
|
6
6
|
import { AppBeneficiaryEntity } from "./app_beneficiary.entity";
|
|
@@ -21,6 +21,7 @@ export declare class ApplicationEntity extends _BaseEntity {
|
|
|
21
21
|
org_id: string;
|
|
22
22
|
org_branch_id?: string | null;
|
|
23
23
|
channel_id?: string | null;
|
|
24
|
+
org_referral_id?: string | null;
|
|
24
25
|
owner_org_staff_id: string;
|
|
25
26
|
assigned_org_staff_id?: string | null;
|
|
26
27
|
status: ApplicationStatus;
|
|
@@ -53,6 +54,7 @@ export declare class ApplicationEntity extends _BaseEntity {
|
|
|
53
54
|
owner_org_staff: OrganizationStaffEntity;
|
|
54
55
|
assigned_org_staff?: OrganizationStaffEntity | null;
|
|
55
56
|
org_branch?: OrganizationBranchEntity | null;
|
|
57
|
+
org_referral?: OrgReferralEntity | null;
|
|
56
58
|
app_coverages?: AppCoverageEntity[];
|
|
57
59
|
app_persons?: AppPersonEntity[];
|
|
58
60
|
app_beneficiaries?: AppBeneficiaryEntity[];
|
|
@@ -87,6 +87,11 @@ __decorate([
|
|
|
87
87
|
(0, typeorm_1.Column)({ type: "uuid", nullable: true }),
|
|
88
88
|
__metadata("design:type", Object)
|
|
89
89
|
], ApplicationEntity.prototype, "channel_id", void 0);
|
|
90
|
+
__decorate([
|
|
91
|
+
(0, typeorm_1.Index)(),
|
|
92
|
+
(0, typeorm_1.Column)({ type: "uuid", nullable: true }),
|
|
93
|
+
__metadata("design:type", Object)
|
|
94
|
+
], ApplicationEntity.prototype, "org_referral_id", void 0);
|
|
90
95
|
__decorate([
|
|
91
96
|
(0, typeorm_1.Index)(),
|
|
92
97
|
(0, typeorm_1.Column)({ type: "uuid" }),
|
|
@@ -247,6 +252,11 @@ __decorate([
|
|
|
247
252
|
(0, typeorm_1.JoinColumn)({ name: "org_branch_id" }),
|
|
248
253
|
__metadata("design:type", Object)
|
|
249
254
|
], ApplicationEntity.prototype, "org_branch", void 0);
|
|
255
|
+
__decorate([
|
|
256
|
+
(0, typeorm_1.ManyToOne)(() => core_1.OrgReferralEntity, { onDelete: "SET NULL" }),
|
|
257
|
+
(0, typeorm_1.JoinColumn)({ name: "org_referral_id" }),
|
|
258
|
+
__metadata("design:type", Object)
|
|
259
|
+
], ApplicationEntity.prototype, "org_referral", void 0);
|
|
250
260
|
__decorate([
|
|
251
261
|
(0, typeorm_1.OneToMany)(() => app_coverage_entity_1.AppCoverageEntity, (c) => c.application, { nullable: true }),
|
|
252
262
|
__metadata("design:type", Array)
|
|
@@ -17,7 +17,8 @@ import { OccupationEntity } from "./occupation.entity";
|
|
|
17
17
|
import { RelationshipEntity } from "./relationship.entity";
|
|
18
18
|
import { StaffEntity } from "./staffs.entity";
|
|
19
19
|
import { PaymentMethodEntity } from "./payment_method.entity";
|
|
20
|
-
|
|
21
|
-
export
|
|
20
|
+
import { OrgReferralEntity } from "./org_referral.entity";
|
|
21
|
+
export declare const CORE_ENTITIES: readonly [typeof GeoProvinceEntity, typeof GeoDistrictEntity, typeof GeoCommuneEntity, typeof GeoVillageEntity, typeof MaritalStatusEntity, typeof NationalityEntity, typeof NumberSeriesEntity, typeof OrganizationEntity, typeof OrganizationBranchEntity, typeof OrganizationChannelEntity, typeof OrganizationDepartmentEntity, typeof OrganizationPositionEntity, typeof OrganizationStaffEntity, typeof OrganizationStaffBranchEntity, typeof OrganizationStaffReportingLineEntity, typeof OrgReferralEntity, typeof OccupationEntity, typeof PaymentMethodEntity, typeof RelationshipEntity, typeof StaffEntity, typeof import("./product").CashValueEntity, typeof import("./product").PaymentModeEntity, typeof import("./product").PremiumRateConditionEntity, typeof import("./product").PremiumRateValueEntity, typeof import("./product").ProductEntity, typeof import("./product").ProductOrgEntity, typeof import("./product").ProductTypeEntity, typeof import("./product").ProductPaymentModeEntity, typeof import("./product").ProductRiderEntity, typeof import("./product").ProductTermEntity, typeof import("./product").ProductPlanEntity, typeof import("./product").PromotionEntity, typeof import("./product").PromotionOrgEntity, typeof import("./product").PromotionProductEntity, typeof import("./product").RiderEntity, typeof import("./product").TermEntity, typeof import("./finance").ExchangeRateEntity, typeof import("./finance").ExchangeRateLogEntity];
|
|
22
|
+
export { GeoProvinceEntity, GeoDistrictEntity, GeoCommuneEntity, GeoVillageEntity, MaritalStatusEntity, NationalityEntity, NumberSeriesEntity, OrganizationEntity, OrganizationBranchEntity, OrganizationChannelEntity, OrganizationDepartmentEntity, OrganizationPositionEntity, OrganizationStaffEntity, OrganizationStaffBranchEntity, OrganizationStaffReportingLineEntity, OrgReferralEntity, OccupationEntity, PaymentMethodEntity, RelationshipEntity, StaffEntity, };
|
|
22
23
|
export * from "./product";
|
|
23
24
|
export * from "./finance";
|
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.StaffEntity = exports.RelationshipEntity = exports.PaymentMethodEntity = exports.OccupationEntity = exports.OrganizationStaffReportingLineEntity = exports.OrganizationStaffBranchEntity = exports.OrganizationStaffEntity = exports.OrganizationPositionEntity = exports.OrganizationDepartmentEntity = exports.OrganizationChannelEntity = exports.OrganizationBranchEntity = exports.OrganizationEntity = exports.NumberSeriesEntity = exports.NationalityEntity = exports.MaritalStatusEntity = exports.GeoVillageEntity = exports.GeoCommuneEntity = exports.GeoDistrictEntity = exports.GeoProvinceEntity = exports.CORE_ENTITIES = void 0;
|
|
17
|
+
exports.StaffEntity = exports.RelationshipEntity = exports.PaymentMethodEntity = exports.OccupationEntity = exports.OrgReferralEntity = exports.OrganizationStaffReportingLineEntity = exports.OrganizationStaffBranchEntity = exports.OrganizationStaffEntity = exports.OrganizationPositionEntity = exports.OrganizationDepartmentEntity = exports.OrganizationChannelEntity = exports.OrganizationBranchEntity = exports.OrganizationEntity = exports.NumberSeriesEntity = exports.NationalityEntity = exports.MaritalStatusEntity = exports.GeoVillageEntity = exports.GeoCommuneEntity = exports.GeoDistrictEntity = exports.GeoProvinceEntity = exports.CORE_ENTITIES = void 0;
|
|
18
18
|
const geo_province_entity_1 = require("./geo_province.entity");
|
|
19
19
|
Object.defineProperty(exports, "GeoProvinceEntity", { enumerable: true, get: function () { return geo_province_entity_1.GeoProvinceEntity; } });
|
|
20
20
|
const geo_district_entity_1 = require("./geo_district.entity");
|
|
@@ -55,6 +55,8 @@ const product_1 = require("./product");
|
|
|
55
55
|
const payment_method_entity_1 = require("./payment_method.entity");
|
|
56
56
|
Object.defineProperty(exports, "PaymentMethodEntity", { enumerable: true, get: function () { return payment_method_entity_1.PaymentMethodEntity; } });
|
|
57
57
|
const finance_1 = require("./finance");
|
|
58
|
+
const org_referral_entity_1 = require("./org_referral.entity");
|
|
59
|
+
Object.defineProperty(exports, "OrgReferralEntity", { enumerable: true, get: function () { return org_referral_entity_1.OrgReferralEntity; } });
|
|
58
60
|
exports.CORE_ENTITIES = [
|
|
59
61
|
geo_province_entity_1.GeoProvinceEntity,
|
|
60
62
|
geo_district_entity_1.GeoDistrictEntity,
|
|
@@ -73,6 +75,7 @@ exports.CORE_ENTITIES = [
|
|
|
73
75
|
org_staff_entity_1.OrganizationStaffEntity,
|
|
74
76
|
org_staff_branches_entity_1.OrganizationStaffBranchEntity,
|
|
75
77
|
org_staff_reporting_lines_entity_1.OrganizationStaffReportingLineEntity,
|
|
78
|
+
org_referral_entity_1.OrgReferralEntity,
|
|
76
79
|
occupation_entity_1.OccupationEntity,
|
|
77
80
|
//
|
|
78
81
|
payment_method_entity_1.PaymentMethodEntity,
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { _BaseEntity } from "../_base_entity";
|
|
2
|
+
import { OrganizationEntity } from "./organization.entity";
|
|
3
|
+
import { OrganizationStaffEntity } from "./org_staff.entity";
|
|
4
|
+
import { Gender } from "../../types";
|
|
5
|
+
export declare class OrgReferralEntity extends _BaseEntity {
|
|
6
|
+
id: string;
|
|
7
|
+
org_id: string;
|
|
8
|
+
org_staff_id?: string | null;
|
|
9
|
+
referral_code: string;
|
|
10
|
+
full_name: string;
|
|
11
|
+
full_name_kh?: string;
|
|
12
|
+
gender?: Gender;
|
|
13
|
+
phone_number?: string;
|
|
14
|
+
is_active: boolean;
|
|
15
|
+
org: OrganizationEntity;
|
|
16
|
+
org_staff?: OrganizationStaffEntity | null;
|
|
17
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.OrgReferralEntity = void 0;
|
|
13
|
+
const typeorm_1 = require("typeorm");
|
|
14
|
+
const _base_entity_1 = require("../_base_entity");
|
|
15
|
+
const organization_entity_1 = require("./organization.entity");
|
|
16
|
+
const org_staff_entity_1 = require("./org_staff.entity");
|
|
17
|
+
const types_1 = require("../../types");
|
|
18
|
+
let OrgReferralEntity = class OrgReferralEntity extends _base_entity_1._BaseEntity {
|
|
19
|
+
};
|
|
20
|
+
exports.OrgReferralEntity = OrgReferralEntity;
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, typeorm_1.PrimaryGeneratedColumn)("uuid"),
|
|
23
|
+
__metadata("design:type", String)
|
|
24
|
+
], OrgReferralEntity.prototype, "id", void 0);
|
|
25
|
+
__decorate([
|
|
26
|
+
(0, typeorm_1.Index)(),
|
|
27
|
+
(0, typeorm_1.Column)({ type: "uuid" }),
|
|
28
|
+
__metadata("design:type", String)
|
|
29
|
+
], OrgReferralEntity.prototype, "org_id", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, typeorm_1.Index)(),
|
|
32
|
+
(0, typeorm_1.Column)({ type: "uuid", nullable: true }),
|
|
33
|
+
__metadata("design:type", Object)
|
|
34
|
+
], OrgReferralEntity.prototype, "org_staff_id", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
(0, typeorm_1.Index)(),
|
|
37
|
+
(0, typeorm_1.Column)({ type: "varchar", length: 30 }),
|
|
38
|
+
__metadata("design:type", String)
|
|
39
|
+
], OrgReferralEntity.prototype, "referral_code", void 0);
|
|
40
|
+
__decorate([
|
|
41
|
+
(0, typeorm_1.Column)({ type: "varchar", length: 150 }),
|
|
42
|
+
__metadata("design:type", String)
|
|
43
|
+
], OrgReferralEntity.prototype, "full_name", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
(0, typeorm_1.Column)({ type: "varchar", length: 150, nullable: true }),
|
|
46
|
+
__metadata("design:type", String)
|
|
47
|
+
], OrgReferralEntity.prototype, "full_name_kh", void 0);
|
|
48
|
+
__decorate([
|
|
49
|
+
(0, typeorm_1.Column)({ type: "varchar", length: 1, nullable: true }),
|
|
50
|
+
__metadata("design:type", String)
|
|
51
|
+
], OrgReferralEntity.prototype, "gender", void 0);
|
|
52
|
+
__decorate([
|
|
53
|
+
(0, typeorm_1.Column)({ type: "varchar", length: 255, nullable: true }),
|
|
54
|
+
__metadata("design:type", String)
|
|
55
|
+
], OrgReferralEntity.prototype, "phone_number", void 0);
|
|
56
|
+
__decorate([
|
|
57
|
+
(0, typeorm_1.Column)({ type: "boolean", default: true }),
|
|
58
|
+
__metadata("design:type", Boolean)
|
|
59
|
+
], OrgReferralEntity.prototype, "is_active", void 0);
|
|
60
|
+
__decorate([
|
|
61
|
+
(0, typeorm_1.ManyToOne)(() => organization_entity_1.OrganizationEntity, { onDelete: "CASCADE" }),
|
|
62
|
+
(0, typeorm_1.JoinColumn)({ name: "org_id" }),
|
|
63
|
+
__metadata("design:type", organization_entity_1.OrganizationEntity)
|
|
64
|
+
], OrgReferralEntity.prototype, "org", void 0);
|
|
65
|
+
__decorate([
|
|
66
|
+
(0, typeorm_1.ManyToOne)(() => org_staff_entity_1.OrganizationStaffEntity, { onDelete: "SET NULL" }),
|
|
67
|
+
(0, typeorm_1.JoinColumn)({ name: "org_staff_id" }),
|
|
68
|
+
__metadata("design:type", Object)
|
|
69
|
+
], OrgReferralEntity.prototype, "org_staff", void 0);
|
|
70
|
+
exports.OrgReferralEntity = OrgReferralEntity = __decorate([
|
|
71
|
+
(0, typeorm_1.Entity)({ schema: "core", name: "org_referrals" }),
|
|
72
|
+
(0, typeorm_1.Unique)("uq_org_referral_org_code", ["org_id", "referral_code"]),
|
|
73
|
+
(0, typeorm_1.Unique)("uq_org_referral_org_staff", ["org_id", "org_staff_id"])
|
|
74
|
+
], OrgReferralEntity);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "plac-micro-common",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.50",
|
|
4
4
|
"types": "dist/index.d.ts",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
"rxjs": "^7.8.2"
|
|
28
28
|
},
|
|
29
29
|
"peerDependencies": {
|
|
30
|
+
"@nestjs/axios": "^4.0.1",
|
|
30
31
|
"@nestjs/common": "^11.1.9",
|
|
31
32
|
"@nestjs/config": "^4.0.2",
|
|
32
33
|
"@nestjs/core": "^11.1.9",
|