feat(investment): wire Bank/Party, Script Master and Purchase Entry to the backend
- Bank / Party Master and Script Master follow the bank's existing CBS screens (address, bank type, GL A/c, RBI code, limit, LEI, counterparty bank details; SLR type, auto script code, ISIN, interest rate, issue / maturity date, auto period, company details) and save to /investment/parties and /investment/scripts. GL dropdowns list enabled ASSET detail accounts from the chart of accounts. - Purchase Entry simplified to the mandatory fields; script details, settlement date, last interest date, units, book value, premium/discount, accrued interest (30/360 up to the deal date), settlement amount and YTM are filled automatically; optional fields sit under "More Details"; an Accounting Preview shows the GL entry. Save / Retrieve / Drop use /investment/purchases and the Holdings register lists saved purchases. - New InvestmentService for the investment API calls. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -123,6 +123,16 @@ export interface InvestmentHolding {
|
||||
* never re-counts days up to this date, so re-running a Calculation & Post for an overlapping
|
||||
* or repeated period always yields 0 instead of double-posting the same interest. */
|
||||
interestPostedTillDate?: string;
|
||||
/** RBI investment category chosen at purchase — HTM / AFS / HFT. */
|
||||
category?: string;
|
||||
/** SGL / CSGL account the security is held in (custody, not an accounting GL). */
|
||||
sglAccountNo?: string;
|
||||
/** Backend id / deal number / party code once the purchase is saved (absent on sample rows). */
|
||||
id?: number;
|
||||
dealNo?: string;
|
||||
partyCode?: string;
|
||||
bookValue?: number;
|
||||
settlementAmount?: number;
|
||||
}
|
||||
|
||||
export interface InvestmentTxn {
|
||||
@@ -248,6 +258,51 @@ export function accruedInterestBetween(h: InvestmentHolding, fromStr: string, to
|
||||
return Math.round(h.faceValue * (h.interestRate / 100) * (days / 365.25));
|
||||
}
|
||||
|
||||
/** Days between two DD-MM-YYYY dates on a 30/360 basis (every month 30 days), as the bank's existing
|
||||
* CBS counts them — e.g. 10-08 → 30-09 = 50 days, 10-08 → 07-10 = 57 days. */
|
||||
export function days360(fromStr: string, toStr: string): number {
|
||||
const a = parseDDMMYYYY(fromStr);
|
||||
const b = parseDDMMYYYY(toStr);
|
||||
if (isNaN(a.getTime()) || isNaN(b.getTime()) || b <= a) {
|
||||
return 0;
|
||||
}
|
||||
const d1 = Math.min(a.getDate(), 30);
|
||||
const d2 = Math.min(b.getDate(), 30);
|
||||
return (b.getFullYear() - a.getFullYear()) * 360 + (b.getMonth() - a.getMonth()) * 30 + (d2 - d1);
|
||||
}
|
||||
|
||||
/** Most recent half-yearly coupon date on or before `onStr`, derived from the maturity date (coupons
|
||||
* fall on the maturity day/month and six months either side of it). */
|
||||
export function lastHalfYearlyCouponDate(maturityStr: string, onStr: string): string {
|
||||
const mat = parseDDMMYYYY(maturityStr);
|
||||
const on = parseDDMMYYYY(onStr);
|
||||
if (isNaN(mat.getTime()) || isNaN(on.getTime())) {
|
||||
return '';
|
||||
}
|
||||
const day = mat.getDate();
|
||||
const couponOn = (year: number, month: number): Date => {
|
||||
const lastDay = new Date(year, month + 1, 0).getDate();
|
||||
return new Date(year, month, Math.min(day, lastDay));
|
||||
};
|
||||
const months = [
|
||||
mat.getMonth() % 6,
|
||||
(mat.getMonth() % 6) + 6
|
||||
];
|
||||
let best: Date | undefined;
|
||||
for (const year of [
|
||||
on.getFullYear() - 1,
|
||||
on.getFullYear()
|
||||
]) {
|
||||
for (const m of months) {
|
||||
const c = couponOn(year, m);
|
||||
if (c <= on && (!best || c > best)) {
|
||||
best = c;
|
||||
}
|
||||
}
|
||||
}
|
||||
return best ? formatDDMMYYYY(best) : '';
|
||||
}
|
||||
|
||||
export function formatDDMMYYYY(d: Date): string {
|
||||
return `${String(d.getDate()).padStart(2, '0')}-${String(d.getMonth() + 1).padStart(2, '0')}-${d.getFullYear()}`;
|
||||
}
|
||||
@@ -1404,99 +1459,319 @@ export const CASH_BANK_GL_MASTER: InvestmentGlOption[] = [
|
||||
{ glCode: '110030', glName: 'HDFC BANK CURRENT ACCOUNT' }
|
||||
];
|
||||
|
||||
/** Investment GLs a script / party can be mapped to. PROPOSED codes awaiting approval — the
|
||||
* backend will take these from the chart of accounts, never hard-coded. */
|
||||
export const INVESTMENT_GL_OPTIONS: InvestmentGlOption[] = [
|
||||
{ glCode: '100701', glName: 'INVESTMENT IN CENTRAL GOVT SECURITIES' },
|
||||
{ glCode: '100702', glName: 'INVESTMENT IN STATE GOVT SECURITIES' },
|
||||
{ glCode: '100703', glName: 'INVESTMENT IN BONDS / DEBENTURES' },
|
||||
{ glCode: '100704', glName: 'FIXED DEPOSITS WITH OTHER BANKS' },
|
||||
{ glCode: '100705', glName: 'INVESTMENT IN MUTUAL FUNDS' },
|
||||
{ glCode: '100706', glName: 'INVESTMENT IN SHARES' }
|
||||
];
|
||||
|
||||
/** Fallback investment GL when a script has none mapped. */
|
||||
export const INVESTMENT_GL_BY_TYPE: Record<InstrumentType, string> = {
|
||||
GOVT_SECURITY: '100701',
|
||||
NON_SLR: '100703',
|
||||
BOND: '100703',
|
||||
FD: '100704',
|
||||
MUTUAL_FUND: '100705',
|
||||
SHARE: '100706'
|
||||
};
|
||||
|
||||
/** Interest receivable (the senior's "Provision A/c") — debited for interest bought from the seller. */
|
||||
export const INTEREST_RECEIVABLE_GL: InvestmentGlOption = {
|
||||
glCode: '100603',
|
||||
glName: 'INTEREST RECEIVABLE ON INVESTMENTS (PROVISION)'
|
||||
};
|
||||
|
||||
/** Bank accounts a purchase can be paid from — these GLs already exist in the chart of accounts. */
|
||||
export const SETTLEMENT_BANK_GL_OPTIONS: InvestmentGlOption[] = [
|
||||
{ glCode: '100201', glName: 'IDBI BANK' },
|
||||
{ glCode: '100202', glName: 'YES BANK' }
|
||||
];
|
||||
|
||||
/** Every GL the Investment screens can show by name. */
|
||||
export const INVESTMENT_GL_LOOKUP: InvestmentGlOption[] = [
|
||||
...INVESTMENT_GL_OPTIONS,
|
||||
INTEREST_RECEIVABLE_GL,
|
||||
...SETTLEMENT_BANK_GL_OPTIONS
|
||||
];
|
||||
|
||||
/** SLR classification on the Script Master, as in the bank's existing CBS ("GOI" = Central Govt). */
|
||||
export type SlrType = 'GOI' | 'STATE_GOVT' | 'TREASURY' | 'NON_SLR';
|
||||
|
||||
export const SLR_TYPE_OPTIONS: Array<{ value: SlrType; label: string }> = [
|
||||
{ value: 'GOI', label: 'GOI' },
|
||||
{ value: 'STATE_GOVT', label: 'STATE GOVT' },
|
||||
{ value: 'TREASURY', label: 'TREASURY' },
|
||||
{ value: 'NON_SLR', label: 'NON SLR' }
|
||||
];
|
||||
|
||||
export interface ScriptMaster {
|
||||
/** Backend id once the script is saved (absent on the sample rows). */
|
||||
id?: number;
|
||||
scriptCode: string;
|
||||
scriptName: string;
|
||||
instrumentType: InstrumentType;
|
||||
isin: string;
|
||||
faceValuePerUnit: number;
|
||||
// Fields below follow the bank's existing CBS Script Master; a purchase picks them up instead
|
||||
// of the dealer re-typing them on every deal.
|
||||
slrType?: SlrType;
|
||||
/** Investment GL this script is booked to. */
|
||||
glAccountId?: number;
|
||||
glCode?: string;
|
||||
glName?: string;
|
||||
active?: boolean;
|
||||
/** Interest (coupon) rate % per annum. */
|
||||
couponRate?: number;
|
||||
issueDate?: string;
|
||||
maturityDate?: string;
|
||||
// Issuer details — used for Bond / Mutual Fund scripts.
|
||||
companyName?: string;
|
||||
address1?: string;
|
||||
address2?: string;
|
||||
address3?: string;
|
||||
city?: string;
|
||||
pincode?: string;
|
||||
phone?: string;
|
||||
fax?: string;
|
||||
corpCode?: string;
|
||||
}
|
||||
|
||||
/** Period between two DD-MM-YYYY dates as years / months / days, as shown on the Script Master. */
|
||||
export function periodBetween(fromStr?: string, toStr?: string): { years: number; months: number; days: number } {
|
||||
const none = { years: 0, months: 0, days: 0 };
|
||||
if (!fromStr || !toStr) {
|
||||
return none;
|
||||
}
|
||||
const from = parseDDMMYYYY(fromStr);
|
||||
const to = parseDDMMYYYY(toStr);
|
||||
if (isNaN(from.getTime()) || isNaN(to.getTime()) || to < from) {
|
||||
return none;
|
||||
}
|
||||
let years = to.getFullYear() - from.getFullYear();
|
||||
let months = to.getMonth() - from.getMonth();
|
||||
let days = to.getDate() - from.getDate();
|
||||
if (days < 0) {
|
||||
months -= 1;
|
||||
days += new Date(to.getFullYear(), to.getMonth(), 0).getDate();
|
||||
}
|
||||
if (months < 0) {
|
||||
years -= 1;
|
||||
months += 12;
|
||||
}
|
||||
return { years, months, days };
|
||||
}
|
||||
|
||||
export const SCRIPT_MASTER: ScriptMaster[] = [
|
||||
{ scriptCode: 'FD-CUM', scriptName: 'Cumulative Fixed Deposit', instrumentType: 'FD', isin: '', faceValuePerUnit: 1 },
|
||||
{
|
||||
scriptCode: 'FD-CUM',
|
||||
scriptName: 'Cumulative Fixed Deposit',
|
||||
instrumentType: 'FD',
|
||||
isin: '',
|
||||
faceValuePerUnit: 1,
|
||||
slrType: 'NON_SLR',
|
||||
glCode: '100704'
|
||||
},
|
||||
{
|
||||
scriptCode: 'FD-MIP',
|
||||
scriptName: 'Monthly Interest Payout FD',
|
||||
instrumentType: 'FD',
|
||||
isin: '',
|
||||
faceValuePerUnit: 1
|
||||
faceValuePerUnit: 1,
|
||||
slrType: 'NON_SLR',
|
||||
glCode: '100704'
|
||||
},
|
||||
{
|
||||
scriptCode: 'IN0020230012',
|
||||
scriptName: '7.26% GOI 2033',
|
||||
instrumentType: 'GOVT_SECURITY',
|
||||
isin: 'IN0020230012',
|
||||
faceValuePerUnit: 100
|
||||
faceValuePerUnit: 100,
|
||||
slrType: 'GOI',
|
||||
glCode: '100701',
|
||||
couponRate: 7.26,
|
||||
issueDate: '15-01-2023',
|
||||
maturityDate: '15-01-2033'
|
||||
},
|
||||
{
|
||||
scriptCode: 'IN0020220089',
|
||||
scriptName: '7.10% GOI 2029',
|
||||
instrumentType: 'GOVT_SECURITY',
|
||||
isin: 'IN0020220089',
|
||||
faceValuePerUnit: 100
|
||||
faceValuePerUnit: 100,
|
||||
slrType: 'GOI',
|
||||
glCode: '100701',
|
||||
couponRate: 7.1,
|
||||
issueDate: '10-03-2022',
|
||||
maturityDate: '10-03-2029'
|
||||
},
|
||||
{
|
||||
scriptCode: 'IN0020210056',
|
||||
scriptName: '6.79% GOI 2027',
|
||||
instrumentType: 'GOVT_SECURITY',
|
||||
isin: 'IN0020210056',
|
||||
faceValuePerUnit: 100,
|
||||
slrType: 'GOI',
|
||||
glCode: '100701',
|
||||
couponRate: 6.79,
|
||||
issueDate: '05-06-2021',
|
||||
maturityDate: '05-06-2027'
|
||||
},
|
||||
{
|
||||
scriptCode: 'IN0020240034',
|
||||
scriptName: '7.18% GOI 2037',
|
||||
instrumentType: 'GOVT_SECURITY',
|
||||
isin: 'IN0020240034',
|
||||
faceValuePerUnit: 100,
|
||||
slrType: 'GOI',
|
||||
glCode: '100701',
|
||||
couponRate: 7.18,
|
||||
issueDate: '22-04-2024',
|
||||
maturityDate: '22-04-2037'
|
||||
},
|
||||
{
|
||||
scriptCode: 'MH-SDL-2031',
|
||||
scriptName: '8.05% Maharashtra SDL 2031',
|
||||
instrumentType: 'GOVT_SECURITY',
|
||||
isin: '',
|
||||
faceValuePerUnit: 100,
|
||||
slrType: 'STATE_GOVT',
|
||||
glCode: '100702',
|
||||
couponRate: 8.05,
|
||||
issueDate: '15-02-2021',
|
||||
maturityDate: '15-02-2031'
|
||||
},
|
||||
{
|
||||
scriptCode: 'GJ-SDL-2026',
|
||||
scriptName: '7.85% Gujarat SDL 2026',
|
||||
instrumentType: 'GOVT_SECURITY',
|
||||
isin: '',
|
||||
faceValuePerUnit: 100,
|
||||
slrType: 'STATE_GOVT',
|
||||
glCode: '100702',
|
||||
couponRate: 7.85,
|
||||
issueDate: '18-09-2016',
|
||||
maturityDate: '18-09-2026'
|
||||
},
|
||||
{
|
||||
scriptCode: 'TBILL-364D',
|
||||
scriptName: '364 Days Treasury Bill',
|
||||
instrumentType: 'GOVT_SECURITY',
|
||||
isin: '',
|
||||
faceValuePerUnit: 100
|
||||
faceValuePerUnit: 100,
|
||||
slrType: 'TREASURY',
|
||||
glCode: '100701',
|
||||
couponRate: 0,
|
||||
issueDate: '02-07-2026',
|
||||
maturityDate: '02-07-2027'
|
||||
},
|
||||
{
|
||||
scriptCode: 'TBILL-91D',
|
||||
scriptName: '91 Days Treasury Bill',
|
||||
instrumentType: 'GOVT_SECURITY',
|
||||
isin: '',
|
||||
faceValuePerUnit: 100,
|
||||
slrType: 'TREASURY',
|
||||
glCode: '100701',
|
||||
couponRate: 0,
|
||||
issueDate: '15-05-2026',
|
||||
maturityDate: '13-08-2026'
|
||||
},
|
||||
{
|
||||
scriptCode: 'REC-7.5-2031',
|
||||
scriptName: 'REC Ltd Bond 7.50% 2031',
|
||||
instrumentType: 'NON_SLR',
|
||||
isin: 'INE020B08JN0',
|
||||
faceValuePerUnit: 100
|
||||
faceValuePerUnit: 100,
|
||||
slrType: 'NON_SLR',
|
||||
glCode: '100703',
|
||||
couponRate: 7.5,
|
||||
issueDate: '11-08-2021',
|
||||
maturityDate: '11-08-2031',
|
||||
companyName: 'REC Limited',
|
||||
city: 'New Delhi'
|
||||
},
|
||||
{
|
||||
scriptCode: 'NABARD-7.35-2030',
|
||||
scriptName: 'NABARD Bond 7.35% 2030',
|
||||
instrumentType: 'NON_SLR',
|
||||
isin: 'INE261F09EU1',
|
||||
faceValuePerUnit: 100
|
||||
faceValuePerUnit: 100,
|
||||
slrType: 'NON_SLR',
|
||||
glCode: '100703',
|
||||
couponRate: 7.35,
|
||||
issueDate: '20-09-2020',
|
||||
maturityDate: '20-09-2030',
|
||||
companyName: 'NABARD',
|
||||
city: 'Mumbai'
|
||||
},
|
||||
{
|
||||
scriptCode: 'LTF-8.1-2028',
|
||||
scriptName: 'L&T Finance NCD 8.10% 2028',
|
||||
instrumentType: 'BOND',
|
||||
isin: 'INE027E07BR5',
|
||||
faceValuePerUnit: 100
|
||||
faceValuePerUnit: 100,
|
||||
slrType: 'NON_SLR',
|
||||
glCode: '100703',
|
||||
couponRate: 8.1,
|
||||
companyName: 'L&T Finance Ltd',
|
||||
city: 'Mumbai'
|
||||
},
|
||||
{
|
||||
scriptCode: 'BAF-7.95-2027',
|
||||
scriptName: 'Bajaj Finance NCD 7.95% 2027',
|
||||
instrumentType: 'BOND',
|
||||
isin: 'INE296A07SP0',
|
||||
faceValuePerUnit: 100
|
||||
faceValuePerUnit: 100,
|
||||
slrType: 'NON_SLR',
|
||||
glCode: '100703',
|
||||
couponRate: 7.95,
|
||||
companyName: 'Bajaj Finance Ltd',
|
||||
city: 'Pune'
|
||||
},
|
||||
{
|
||||
scriptCode: 'SBI-OVN',
|
||||
scriptName: 'SBI Overnight Fund',
|
||||
instrumentType: 'MUTUAL_FUND',
|
||||
isin: 'INF200KA1Q40',
|
||||
faceValuePerUnit: 1000
|
||||
faceValuePerUnit: 1000,
|
||||
slrType: 'NON_SLR',
|
||||
glCode: '100705',
|
||||
companyName: 'SBI Mutual Fund',
|
||||
city: 'Mumbai'
|
||||
},
|
||||
{
|
||||
scriptCode: 'HDFC-LIQ',
|
||||
scriptName: 'HDFC Liquid Fund',
|
||||
instrumentType: 'MUTUAL_FUND',
|
||||
isin: 'INF179KA1WR9',
|
||||
faceValuePerUnit: 1000
|
||||
faceValuePerUnit: 1000,
|
||||
slrType: 'NON_SLR',
|
||||
glCode: '100705',
|
||||
companyName: 'HDFC Mutual Fund',
|
||||
city: 'Mumbai'
|
||||
},
|
||||
{
|
||||
scriptCode: 'SBIN',
|
||||
scriptName: 'State Bank of India',
|
||||
instrumentType: 'SHARE',
|
||||
isin: 'INE062A01020',
|
||||
faceValuePerUnit: 1
|
||||
faceValuePerUnit: 1,
|
||||
slrType: 'NON_SLR',
|
||||
glCode: '100706'
|
||||
},
|
||||
{
|
||||
scriptCode: 'HDFCBANK',
|
||||
scriptName: 'HDFC Bank Ltd',
|
||||
instrumentType: 'SHARE',
|
||||
isin: 'INE040A01034',
|
||||
faceValuePerUnit: 1
|
||||
faceValuePerUnit: 1,
|
||||
slrType: 'NON_SLR',
|
||||
glCode: '100706'
|
||||
}
|
||||
];
|
||||
|
||||
@@ -1561,23 +1836,150 @@ export const BROKER_MASTER: BrokerMaster[] = [
|
||||
];
|
||||
|
||||
export interface PartyMaster {
|
||||
/** Backend id once the party is saved (absent on the sample rows). */
|
||||
id?: number;
|
||||
partyCode: string;
|
||||
partyName: string;
|
||||
partyType: 'BANK' | 'CORPORATE' | 'GOVT' | 'AMC' | 'EXCHANGE' | 'COOP_SOCIETY';
|
||||
panNo: string;
|
||||
panNo?: string;
|
||||
// Fields below follow the bank's existing CBS Bank / Party Master.
|
||||
bondType?: InstrumentType;
|
||||
address1?: string;
|
||||
address2?: string;
|
||||
address3?: string;
|
||||
city?: string;
|
||||
pincode?: string;
|
||||
phone?: string;
|
||||
fax?: string;
|
||||
bankType?: string;
|
||||
/** GL this party is mapped to. */
|
||||
glAccountId?: number;
|
||||
glCode?: string;
|
||||
glName?: string;
|
||||
rbiCode?: string;
|
||||
/** Exposure limit for this party (₹). */
|
||||
limit?: number | null;
|
||||
leiNo?: string;
|
||||
// Counterparty's bank details
|
||||
cpBankName?: string;
|
||||
cpBranchName?: string;
|
||||
cpAccountNo?: string;
|
||||
cpIfsc?: string;
|
||||
/** Absent means ACTIVE. An INACTIVE party is not offered for new deals. */
|
||||
status?: 'ACTIVE' | 'INACTIVE';
|
||||
}
|
||||
|
||||
/** Sample Bank Type options until the bank confirms its list. */
|
||||
export const BANK_TYPE_OPTIONS = [
|
||||
'SCHEDULED COMMERCIAL BANK',
|
||||
'STATE CO-OPERATIVE BANK',
|
||||
'DISTRICT CENTRAL CO-OPERATIVE BANK',
|
||||
'URBAN CO-OPERATIVE BANK',
|
||||
'RBI / GOVERNMENT',
|
||||
'OTHER'
|
||||
];
|
||||
|
||||
export const PARTY_MASTER: PartyMaster[] = [
|
||||
{ partyCode: 'PTY-001', partyName: 'Jila Sahakari Kendriya Bank', partyType: 'BANK', panNo: 'AABCJ1234K' },
|
||||
{ partyCode: 'PTY-002', partyName: 'State Cooperative Bank Ltd', partyType: 'BANK', panNo: 'AABCS5678L' },
|
||||
{ partyCode: 'PTY-003', partyName: 'RBI - SGL', partyType: 'GOVT', panNo: 'AAACR4849R' },
|
||||
{ partyCode: 'PTY-004', partyName: 'REC Limited', partyType: 'CORPORATE', panNo: 'AAACR0641G' },
|
||||
{ partyCode: 'PTY-005', partyName: 'NABARD', partyType: 'CORPORATE', panNo: 'AAACN0272B' },
|
||||
{ partyCode: 'PTY-006', partyName: 'L&T Finance Ltd', partyType: 'CORPORATE', panNo: 'AAACL0140P' },
|
||||
{ partyCode: 'PTY-007', partyName: 'SBI Mutual Fund', partyType: 'AMC', panNo: 'AAATS4325L' },
|
||||
{ partyCode: 'PTY-008', partyName: 'HDFC Mutual Fund', partyType: 'AMC', panNo: 'AAATH1234M' },
|
||||
{ partyCode: 'PTY-009', partyName: 'NSE/BSE', partyType: 'EXCHANGE', panNo: 'AAACN0028G' },
|
||||
{ partyCode: 'PTY-010', partyName: 'District Cooperative Bank', partyType: 'COOP_SOCIETY', panNo: 'AABCD9988K' }
|
||||
{
|
||||
partyCode: 'PTY-001',
|
||||
partyName: 'Jila Sahakari Kendriya Bank',
|
||||
partyType: 'BANK',
|
||||
bondType: 'FD',
|
||||
glCode: '100704',
|
||||
city: 'Vidisha',
|
||||
bankType: 'DISTRICT CENTRAL CO-OPERATIVE BANK',
|
||||
status: 'ACTIVE'
|
||||
},
|
||||
{
|
||||
partyCode: 'PTY-002',
|
||||
partyName: 'State Cooperative Bank Ltd',
|
||||
partyType: 'BANK',
|
||||
bondType: 'FD',
|
||||
glCode: '100704',
|
||||
city: 'Bhopal',
|
||||
bankType: 'STATE CO-OPERATIVE BANK',
|
||||
status: 'ACTIVE'
|
||||
},
|
||||
{
|
||||
partyCode: 'PTY-003',
|
||||
partyName: 'RBI - SGL',
|
||||
partyType: 'GOVT',
|
||||
bondType: 'GOVT_SECURITY',
|
||||
glCode: '100701',
|
||||
city: 'Mumbai',
|
||||
bankType: 'RBI / GOVERNMENT',
|
||||
status: 'ACTIVE'
|
||||
},
|
||||
{
|
||||
partyCode: 'PTY-004',
|
||||
partyName: 'REC Limited',
|
||||
partyType: 'CORPORATE',
|
||||
bondType: 'NON_SLR',
|
||||
glCode: '100703',
|
||||
city: 'New Delhi',
|
||||
bankType: 'OTHER',
|
||||
status: 'ACTIVE'
|
||||
},
|
||||
{
|
||||
partyCode: 'PTY-005',
|
||||
partyName: 'NABARD',
|
||||
partyType: 'CORPORATE',
|
||||
bondType: 'NON_SLR',
|
||||
glCode: '100703',
|
||||
city: 'Mumbai',
|
||||
bankType: 'OTHER',
|
||||
status: 'ACTIVE'
|
||||
},
|
||||
{
|
||||
partyCode: 'PTY-006',
|
||||
partyName: 'L&T Finance Ltd',
|
||||
partyType: 'CORPORATE',
|
||||
bondType: 'BOND',
|
||||
glCode: '100703',
|
||||
city: 'Mumbai',
|
||||
bankType: 'OTHER',
|
||||
status: 'ACTIVE'
|
||||
},
|
||||
{
|
||||
partyCode: 'PTY-007',
|
||||
partyName: 'SBI Mutual Fund',
|
||||
partyType: 'AMC',
|
||||
bondType: 'MUTUAL_FUND',
|
||||
glCode: '100705',
|
||||
city: 'Mumbai',
|
||||
bankType: 'OTHER',
|
||||
status: 'ACTIVE'
|
||||
},
|
||||
{
|
||||
partyCode: 'PTY-008',
|
||||
partyName: 'HDFC Mutual Fund',
|
||||
partyType: 'AMC',
|
||||
bondType: 'MUTUAL_FUND',
|
||||
glCode: '100705',
|
||||
city: 'Mumbai',
|
||||
bankType: 'OTHER',
|
||||
status: 'ACTIVE'
|
||||
},
|
||||
{
|
||||
partyCode: 'PTY-009',
|
||||
partyName: 'NSE/BSE',
|
||||
partyType: 'EXCHANGE',
|
||||
bondType: 'SHARE',
|
||||
glCode: '100706',
|
||||
city: 'Mumbai',
|
||||
bankType: 'OTHER',
|
||||
status: 'ACTIVE'
|
||||
},
|
||||
{
|
||||
partyCode: 'PTY-010',
|
||||
partyName: 'District Cooperative Bank',
|
||||
partyType: 'COOP_SOCIETY',
|
||||
bondType: 'SHARE',
|
||||
glCode: '100706',
|
||||
city: 'Vidisha',
|
||||
bankType: 'DISTRICT CENTRAL CO-OPERATIVE BANK',
|
||||
status: 'ACTIVE'
|
||||
}
|
||||
];
|
||||
|
||||
export interface SubTypeMaster {
|
||||
|
||||
Reference in New Issue
Block a user