Files
cbsnexora/src/app/sft/sft-data.ts
T
AdityaandClaude Opus 4.7 12bfc81219 feat: add 11 banking compliance & accounting report modules
Adds dialog components and feature modules for RBI/banking compliance,
KYC, and accounting reports. Wires them into the shell menu (RBI,
General Ledger, CKYC Mgmt, Others, Insurance) and dashboard cards.

Dialog components (lazy-loaded MatDialog):
- PSL Returns (Form III) — dashboard card + RBI menu
- ALM Statement of Structural Liquidity (Form ALM-1) — RBI menu
- CIMS / XBRL Returns (OSS-2 / PSA / RAL / RCP-UCB) — RBI menu, shared
  dialog with form-pill switcher
- CIC DQR (CIBIL / Experian / Equifax / CRIF, 72-col TUDF) — Others menu
  + dashboard card
- CKYC Compliance Reports (Re-KYC / Risk Review / CERSAI) — CKYC Mgmt
- Accounting Reports (P&L / Balance Sheet / Comparative B/S / GL DR/CR
  / Misc Expense Ledger) — General Ledger menu

Feature modules (Route.withShell):
- DEAF (/deaf): Form I, Form II, Annex 4, accounts register
- DICGC (/dicgc): Slab Report, SAHAY Depositor List
- FIU-IND (/fiu): FINnet 2.0 Statement of Financial Transactions
- SFT (/sft): Income Tax Section 285BA SFT
- CKYC Reports (/ckyc/ckyc-reports): standalone dashboard

UI:
- Theme-colored icons on 22 wired menu links across 5 menus —
  visually distinguishes wired (colored) from placeholder (gray) links.
- Backdrop classes per dialog in main.scss.

All using dummy data (Bharat Urban Bank Ltd, Karthik Kamath as Principal
Officer, dummy customer names) — no real bank or customer references.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 18:59:50 +05:30

655 lines
18 KiB
TypeScript

/**
* Copyright since 2025 Mifos Initiative
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
/**
* SFT — Statement of Financial Transactions, filed under
* Section 285BA of the Income Tax Act 1961 + Rule 114E,
* with the Income Tax Reporting Portal (report.insight.gov.in)
* by 31 May for the previous FY.
*
* Schema reproduces the actual SFT CSV templates; bank/customer names are dummy.
*
* SFT-001 Cash purchase of bank drafts / pay orders / banker's cheques (≥ ₹10 L cash)
* SFT-002 Time-deposit (FD/RD) opening (≥ ₹10 L cash)
* SFT-003 Cash deposits / withdrawals — current account (≥ ₹50 L per FY)
* SFT-004 Cash deposits — savings account (≥ ₹10 L per FY)
* SFT-015 Dividend payments
* SFT-016 Interest paid on deposits
*/
export type SftCode = 'SFT-001' | 'SFT-002' | 'SFT-003' | 'SFT-004' | 'SFT-015' | 'SFT-016';
/** Person-wise schema (SFT-001 / 002 / 004) */
export interface SftPersonRecord {
reportSerialNumber: number;
originalReportSerialNumber: number;
personName: string;
personType: string; // I=Individual, F=Firm, P=Partnership, etc.
customerIdentity: string;
gender: 'M' | 'F' | 'O' | '';
fatherName: string;
pan: string;
aadhaar: string;
form60Ack: string;
identificationType: string;
identificationNumber: string;
dobOrIncorporation: string;
nationality: string;
addressType: string;
fixAddress: string;
city: string;
postCode: string;
state: string;
countryCode: string;
businessOrOccupation: string;
primaryStdCode: string;
primaryPhoneNo: string;
primaryMobileNo: string;
email: string;
remarks: string;
productType: string; // SFT-001/002/004 — DD / Pay Order / Time Deposit / SB
aggGrossReceived: number;
aggGrossReceivedCash: number;
aggGrossPaid: number;
productIdentifier: string;
lastDateOfTransaction: string;
amountReceivedFromPerson: number;
cashAmountReceivedFromPerson: number;
amountPaidToPerson: number;
relatedAccountNumber: string;
relatedInstituteName: string;
relatedInstituteRefNumber: string;
/** Which SFT code this row belongs to */
sftCode: SftCode;
}
/** Account-wise schema with embedded Person Card (SFT-003) */
export interface SftAccountRecord {
reportSerialNumber: number;
originalReportSerialNumber: number;
accountType: string;
accountNumber: string;
accountHolderName: string;
accountStatus: 'A' | 'C' | 'D';
branchReferenceNumber: string;
branchName: string;
branchAddress: string;
branchCity: string;
branchPostalCode: string;
branchState: string;
branchCountry: string;
branchStdCode: string;
branchPhone: string;
branchMobile: string;
branchFaxStd: string;
branchFaxPhone: string;
branchEmail: string;
aggGrossCashCredited: number;
aggGrossCashDebited: number;
amountCreditedBeforeDemonetization: number;
amountCreditedAfterDemonetization: number;
// Person Card (PC)
pcAccountRelationship: string;
pcPersonName: string;
pcPersonType: string;
pcCustomerIdentity: string;
pcGender: 'M' | 'F' | 'O' | '';
pcFatherName: string;
pcPan: string;
pcAadhaar: string;
pcForm60Ack: string;
pcIdentificationType: string;
pcIdentificationNumber: string;
pcDob: string;
pcNationality: string;
pcBusiness: string;
pcAddressType: string;
pcAddress: string;
pcCity: string;
pcPin: string;
pcState: string;
pcCountry: string;
pcPrimaryStd: string;
pcPrimaryPhone: string;
pcPrimaryMobile: string;
pcEmail: string;
}
/** Compact pipe-delimited schema (SFT-015 dividend / SFT-016 interest) */
export interface SftInterestDividendRecord {
rsn: number;
fy: string;
name: string;
pan: string;
aadhaar: string;
mobile: string;
email: string;
/** Address only present in SFT-015 */
address?: string;
pincode?: string;
/** Account fields only present in SFT-016 */
accountNumber?: string;
typeOfAccount?: string;
/** SFT-015 = dividend amount; SFT-016 = interest paid */
amount: number;
sftCode: 'SFT-015' | 'SFT-016';
}
export const SFT_BANK = {
name: 'Bharat Urban Bank Ltd',
branch: 'Head Office',
filerPan: 'AABCB1100M',
filerTan: 'MUMR99001E',
itdReportingPortalId: 'BHARATURBAN-285BA',
fy: '2025-26',
filingDueDate: '31-05-2026',
principalOfficer: 'Karthik Kamath',
poDesignation: 'Chief Compliance Officer',
branchRef: 'YESB0BHRT',
branchAddress: '12 MG Road, Worli',
branchCity: 'MUMBAI',
branchState: 'MH',
branchPostalCode: '400018',
branchCountry: 'IN',
branchStdCode: '022',
branchPhone: '24938000',
branchMobile: '9892000100',
branchEmail: 'compliance@bharaturbanbank.example'
};
/** ── SFT-001 / 002 / 004 — Person-wise records ── */
export const SFT_PERSON_RECORDS: SftPersonRecord[] = [
// SFT-001 — Cash purchase of DD ≥ ₹10 L
{
reportSerialNumber: 1,
originalReportSerialNumber: 0,
personName: 'RAVI KUMAR SHARMA',
personType: 'I',
customerIdentity: '10078',
gender: 'M',
fatherName: 'RAJESH KUMAR SHARMA',
pan: 'AAQPS8560J',
aadhaar: '',
form60Ack: '',
identificationType: 'C',
identificationNumber: 'AAQPS8560J',
dobOrIncorporation: '10-08-1985',
nationality: 'IN',
addressType: '2',
fixAddress: 'FLAT 402 SUNRISE TOWERS MAROL ANDHERI EAST',
city: 'MUMBAI',
postCode: '400069',
state: 'MH',
countryCode: 'IN',
businessOrOccupation: 'SERVICE',
primaryStdCode: '',
primaryPhoneNo: '',
primaryMobileNo: '9892011001',
email: 'ravi.sharma@example.com',
remarks: '',
productType: 'BANK_DRAFT',
aggGrossReceived: 1500000,
aggGrossReceivedCash: 1500000,
aggGrossPaid: 0,
productIdentifier: 'DD24304',
lastDateOfTransaction: '20-01-2026',
amountReceivedFromPerson: 1500000,
cashAmountReceivedFromPerson: 1500000,
amountPaidToPerson: 0,
relatedAccountNumber: '110001101000838',
relatedInstituteName: 'BHARAT URBAN BANK',
relatedInstituteRefNumber: 'YESB0BHRT',
sftCode: 'SFT-001'
},
{
reportSerialNumber: 2,
originalReportSerialNumber: 0,
personName: 'PRIYA PATEL',
personType: 'I',
customerIdentity: '10079',
gender: 'F',
fatherName: 'HARISH PATEL',
pan: 'AKLPS9933P',
aadhaar: '',
form60Ack: '',
identificationType: 'C',
identificationNumber: 'AKLPS9933P',
dobOrIncorporation: '22-03-1990',
nationality: 'IN',
addressType: '2',
fixAddress: 'B-12 SHIVAJI NAGAR FC ROAD',
city: 'PUNE',
postCode: '411005',
state: 'MH',
countryCode: 'IN',
businessOrOccupation: 'BUSINESS',
primaryStdCode: '',
primaryPhoneNo: '',
primaryMobileNo: '9822055002',
email: 'priya.patel@example.com',
remarks: '',
productType: 'BANKERS_CHEQUE',
aggGrossReceived: 1100000,
aggGrossReceivedCash: 1100000,
aggGrossPaid: 0,
productIdentifier: 'BC100039',
lastDateOfTransaction: '02-01-2026',
amountReceivedFromPerson: 1100000,
cashAmountReceivedFromPerson: 1100000,
amountPaidToPerson: 0,
relatedAccountNumber: '110001352000357',
relatedInstituteName: 'BHARAT URBAN BANK',
relatedInstituteRefNumber: 'YESB0BHRT',
sftCode: 'SFT-001'
},
// SFT-002 — Time deposit ≥ ₹10 L cash
{
reportSerialNumber: 3,
originalReportSerialNumber: 0,
personName: 'VIKRAM REDDY',
personType: 'I',
customerIdentity: '20101',
gender: 'M',
fatherName: 'SURESH REDDY',
pan: 'AAEPR9352L',
aadhaar: '',
form60Ack: '',
identificationType: 'C',
identificationNumber: 'AAEPR9352L',
dobOrIncorporation: '07-07-1982',
nationality: 'IN',
addressType: '2',
fixAddress: 'NO 23 4TH CROSS JAYANAGAR 5TH BLOCK',
city: 'BENGALURU',
postCode: '560041',
state: 'KA',
countryCode: 'IN',
businessOrOccupation: 'PROFESSION',
primaryStdCode: '',
primaryPhoneNo: '',
primaryMobileNo: '9845022004',
email: '',
remarks: '',
productType: 'TIME_DEPOSIT',
aggGrossReceived: 2500000,
aggGrossReceivedCash: 2500000,
aggGrossPaid: 0,
productIdentifier: 'FDR-2026-001',
lastDateOfTransaction: '15-09-2025',
amountReceivedFromPerson: 2500000,
cashAmountReceivedFromPerson: 2500000,
amountPaidToPerson: 0,
relatedAccountNumber: '110001352000420',
relatedInstituteName: 'BHARAT URBAN BANK',
relatedInstituteRefNumber: 'YESB0BHRT',
sftCode: 'SFT-002'
},
{
reportSerialNumber: 4,
originalReportSerialNumber: 0,
personName: 'NIRAV SHAH',
personType: 'I',
customerIdentity: '40301',
gender: 'M',
fatherName: 'JAYESH SHAH',
pan: 'AHKPS5544Z',
aadhaar: '',
form60Ack: '',
identificationType: 'C',
identificationNumber: 'AHKPS5544Z',
dobOrIncorporation: '18-05-1992',
nationality: 'IN',
addressType: '2',
fixAddress: 'A-401 ATLANTIS APARTMENTS SATELLITE ROAD',
city: 'AHMEDABAD',
postCode: '380015',
state: 'GJ',
countryCode: 'IN',
businessOrOccupation: 'SERVICE',
primaryStdCode: '',
primaryPhoneNo: '',
primaryMobileNo: '9824012010',
email: 'nirav.shah@example.com',
remarks: '',
productType: 'TIME_DEPOSIT',
aggGrossReceived: 1800000,
aggGrossReceivedCash: 1800000,
aggGrossPaid: 0,
productIdentifier: 'FDR-2026-002',
lastDateOfTransaction: '12-12-2025',
amountReceivedFromPerson: 1800000,
cashAmountReceivedFromPerson: 1800000,
amountPaidToPerson: 0,
relatedAccountNumber: '110001352000511',
relatedInstituteName: 'BHARAT URBAN BANK',
relatedInstituteRefNumber: 'YESB0BHRT',
sftCode: 'SFT-002'
},
// SFT-004 — Cash deposits in SB ≥ ₹10 L per FY
{
reportSerialNumber: 5,
originalReportSerialNumber: 0,
personName: 'KAVITA VERMA',
personType: 'I',
customerIdentity: '50402',
gender: 'F',
fatherName: 'DEEPAK VERMA',
pan: 'AKHPV2244R',
aadhaar: '',
form60Ack: '',
identificationType: 'C',
identificationNumber: 'AKHPV2244R',
dobOrIncorporation: '01-04-1988',
nationality: 'IN',
addressType: '2',
fixAddress: '45 CIVIL LINES MALL ROAD',
city: 'KANPUR',
postCode: '208001',
state: 'UP',
countryCode: 'IN',
businessOrOccupation: 'SERVICE',
primaryStdCode: '',
primaryPhoneNo: '',
primaryMobileNo: '9415055014',
email: '',
remarks: '',
productType: 'SAVINGS_DEPOSIT',
aggGrossReceived: 1250000,
aggGrossReceivedCash: 1250000,
aggGrossPaid: 0,
productIdentifier: 'SB-50402',
lastDateOfTransaction: '28-01-2026',
amountReceivedFromPerson: 1250000,
cashAmountReceivedFromPerson: 1250000,
amountPaidToPerson: 0,
relatedAccountNumber: '110001101001145',
relatedInstituteName: 'BHARAT URBAN BANK',
relatedInstituteRefNumber: 'YESB0BHRT',
sftCode: 'SFT-004'
},
{
reportSerialNumber: 6,
originalReportSerialNumber: 0,
personName: 'SAMEER KAPOOR',
personType: 'I',
customerIdentity: '70601',
gender: 'M',
fatherName: 'RAJINDER KAPOOR',
pan: 'AHKPK7788Q',
aadhaar: '',
form60Ack: '',
identificationType: 'C',
identificationNumber: 'AHKPK7788Q',
dobOrIncorporation: '03-02-1987',
nationality: 'IN',
addressType: '2',
fixAddress: 'B-148 GREATER KAILASH GK PART 1',
city: 'NEW DELHI',
postCode: '110048',
state: 'DL',
countryCode: 'IN',
businessOrOccupation: 'SERVICE',
primaryStdCode: '',
primaryPhoneNo: '',
primaryMobileNo: '9811022019',
email: 'sameer.kapoor@example.com',
remarks: '',
productType: 'SAVINGS_DEPOSIT',
aggGrossReceived: 2150000,
aggGrossReceivedCash: 2150000,
aggGrossPaid: 0,
productIdentifier: 'SB-70601',
lastDateOfTransaction: '15-01-2026',
amountReceivedFromPerson: 2150000,
cashAmountReceivedFromPerson: 2150000,
amountPaidToPerson: 0,
relatedAccountNumber: '110001101001458',
relatedInstituteName: 'BHARAT URBAN BANK',
relatedInstituteRefNumber: 'YESB0BHRT',
sftCode: 'SFT-004'
}
];
/** ── SFT-003 — Account-wise (current account) cash deposits ≥ ₹50 L per FY ── */
export const SFT_ACCOUNT_RECORDS: SftAccountRecord[] = [
{
reportSerialNumber: 1,
originalReportSerialNumber: 0,
accountType: 'BC',
accountNumber: '110001101000685',
accountHolderName: 'NEXTGEN TECH PVT LTD',
accountStatus: 'A',
branchReferenceNumber: 'YESB0BHRT',
branchName: 'HEAD OFFICE',
branchAddress: '12 MG ROAD WORLI MUMBAI 400018',
branchCity: 'MUMBAI',
branchPostalCode: '400018',
branchState: 'MH',
branchCountry: 'IN',
branchStdCode: '022',
branchPhone: '24938000',
branchMobile: '9892000100',
branchFaxStd: '022',
branchFaxPhone: '24938011',
branchEmail: 'compliance@bharaturbanbank.example',
aggGrossCashCredited: 6500000,
aggGrossCashDebited: 4200000,
amountCreditedBeforeDemonetization: 0,
amountCreditedAfterDemonetization: 0,
pcAccountRelationship: 'F',
pcPersonName: 'NEXTGEN TECH PVT LTD',
pcPersonType: 'PF',
pcCustomerIdentity: 'E10102',
pcGender: '',
pcFatherName: '',
pcPan: 'AABCN5566K',
pcAadhaar: '',
pcForm60Ack: '',
pcIdentificationType: 'C',
pcIdentificationNumber: 'AABCN5566K',
pcDob: '18-09-2015',
pcNationality: 'IN',
pcBusiness: 'IT_SERVICES',
pcAddressType: '2',
pcAddress: 'TOWER B SUNRISE BUSINESS PARK ANDHERI EAST',
pcCity: 'MUMBAI',
pcPin: '400093',
pcState: 'MH',
pcCountry: 'IN',
pcPrimaryStd: '',
pcPrimaryPhone: '',
pcPrimaryMobile: '9824012011',
pcEmail: ''
},
{
reportSerialNumber: 2,
originalReportSerialNumber: 0,
accountType: 'BC',
accountNumber: '110001101000922',
accountHolderName: 'BHARAT TRADING COMPANY (PROP. RAVI KUMAR SHARMA)',
accountStatus: 'A',
branchReferenceNumber: 'YESB0BHRT',
branchName: 'HEAD OFFICE',
branchAddress: '12 MG ROAD WORLI MUMBAI 400018',
branchCity: 'MUMBAI',
branchPostalCode: '400018',
branchState: 'MH',
branchCountry: 'IN',
branchStdCode: '022',
branchPhone: '24938000',
branchMobile: '9892000100',
branchFaxStd: '022',
branchFaxPhone: '24938011',
branchEmail: 'compliance@bharaturbanbank.example',
aggGrossCashCredited: 5800000,
aggGrossCashDebited: 3450000,
amountCreditedBeforeDemonetization: 0,
amountCreditedAfterDemonetization: 0,
pcAccountRelationship: 'F',
pcPersonName: 'BHARAT TRADING COMPANY',
pcPersonType: 'PF',
pcCustomerIdentity: 'E10101',
pcGender: '',
pcFatherName: '',
pcPan: 'ABCFB1234N',
pcAadhaar: '',
pcForm60Ack: '',
pcIdentificationType: 'C',
pcIdentificationNumber: 'ABCFB1234N',
pcDob: '24-03-2008',
pcNationality: 'IN',
pcBusiness: 'TRADING',
pcAddressType: '2',
pcAddress: 'GALA 22 LOWER PAREL',
pcCity: 'MUMBAI',
pcPin: '400013',
pcState: 'MH',
pcCountry: 'IN',
pcPrimaryStd: '',
pcPrimaryPhone: '',
pcPrimaryMobile: '9892011010',
pcEmail: ''
}
];
/** ── SFT-015 / SFT-016 — Pipe-delimited interest & dividend ── */
export const SFT_INT_DIV_RECORDS: SftInterestDividendRecord[] = [
// SFT-016 — Interest paid to depositors
{
rsn: 1,
fy: '2025-26',
name: 'RAVI KUMAR SHARMA',
pan: 'AAQPS8560J',
aadhaar: 'XXXXXXXX1234',
mobile: '9892011001',
email: 'ravi.sharma@example.com',
accountNumber: '110001302000312',
typeOfAccount: 'FD',
amount: 56250,
sftCode: 'SFT-016'
},
{
rsn: 2,
fy: '2025-26',
name: 'PRIYA PATEL',
pan: 'AKLPS9933P',
aadhaar: 'XXXXXXXX2210',
mobile: '9822055002',
email: 'priya.patel@example.com',
accountNumber: '110001302000418',
typeOfAccount: 'FD',
amount: 41280,
sftCode: 'SFT-016'
},
{
rsn: 3,
fy: '2025-26',
name: 'VIKRAM REDDY',
pan: 'AAEPR9352L',
aadhaar: 'XXXXXXXX6622',
mobile: '9845022004',
email: '',
accountNumber: '110001302000711',
typeOfAccount: 'FD',
amount: 73500,
sftCode: 'SFT-016'
},
{
rsn: 4,
fy: '2025-26',
name: 'LAKSHMI IYER',
pan: '',
aadhaar: 'XXXXXXXX5511',
mobile: '9845066005',
email: '',
accountNumber: '110001301000814',
typeOfAccount: 'SB',
amount: 18420,
sftCode: 'SFT-016'
},
{
rsn: 5,
fy: '2025-26',
name: 'NIRAV SHAH',
pan: 'AHKPS5544Z',
aadhaar: 'XXXXXXXX9933',
mobile: '9824012010',
email: 'nirav.shah@example.com',
accountNumber: '110001352000511',
typeOfAccount: 'FD',
amount: 124200,
sftCode: 'SFT-016'
},
{
rsn: 6,
fy: '2025-26',
name: 'KAVITA VERMA',
pan: 'AKHPV2244R',
aadhaar: 'XXXXXXXX1144',
mobile: '9415055014',
email: '',
accountNumber: '110001101001145',
typeOfAccount: 'SB',
amount: 9850,
sftCode: 'SFT-016'
},
{
rsn: 7,
fy: '2025-26',
name: 'SAMEER KAPOOR',
pan: 'AHKPK7788Q',
aadhaar: 'XXXXXXXX8877',
mobile: '9811022019',
email: 'sameer.kapoor@example.com',
accountNumber: '110001304001458',
typeOfAccount: 'TL',
amount: 285600,
sftCode: 'SFT-016'
},
// SFT-015 — Dividend payments (bank as paying entity, e.g. on shares held)
{
rsn: 8,
fy: '2025-26',
name: 'ABHISHEK BANERJEE',
pan: 'AHKPK7788Q',
aadhaar: 'XXXXXXXX3344',
mobile: '9831022021',
email: 'abhishek.b@example.com',
address: '14/B SALT LAKE SECTOR V BIDHANNAGAR',
pincode: '700091',
amount: 24500,
sftCode: 'SFT-015'
},
{
rsn: 9,
fy: '2025-26',
name: 'GAURAV THAKUR',
pan: 'AILPT4455G',
aadhaar: 'XXXXXXXX5566',
mobile: '9418022023',
email: '',
address: 'HOUSE 7 NEW SHIMLA SECTOR 4',
pincode: '171002',
amount: 18750,
sftCode: 'SFT-015'
},
{
rsn: 10,
fy: '2025-26',
name: 'MANMOHAN SINGH GILL',
pan: 'ANBPG2233J',
aadhaar: '',
mobile: '9876022027',
email: 'manmohan.gill@example.com',
address: 'H 32 MODEL TOWN MAJITHA ROAD AMRITSAR',
pincode: '143001',
amount: 35200,
sftCode: 'SFT-015'
}
];