துறை

இ-தமிழில் நிதியும் கணக்கியலும்

இரட்டைப் பதிவுக் கணக்கியல், CGST/SGST/IGST பிரிப்புடன் GST, மூன்று நிதி அறிக்கைகள், இந்திய ரூபாய் வடிவமைப்பு — அனைத்தும் Rust-இல் அல்ல, இ-தமிழிலேயே எழுதப்பட்டவை.

நிதிச் சொல்லகராதி என்பது மேலே பொருத்தப்பட்ட நூலகம் அல்ல — அது மொழியிலேயே உள்ளது. வரவு, பற்று, வரி, இருப்புநிலை, பேரேடு, மூலதனம் ஆகியவை லெக்சர் அறிந்த திறவுச்சொற்கள்.

அவற்றுக்கு மேல் அமைவது — கணக்குப் பட்டியல், பேரேடு, GST, அறிக்கைகள் — இ-தமிழிலேயே nUlakam/kaNakkiyal/ இல் எழுதப்பட்டுள்ளது. இது வேண்டுமென்றே: கணக்கியல் கட்டமைப்புக்கு Rust தேவைப்பட்டால், அது இருப்பதற்கான காரணத்துக்கே இந்த DSL போதுமானதாக இருக்காது.

ரூபாய், இந்திய முறையில் பிரிக்கப்பட்டது

இறக்கு "nUlakam/paNam.qmz";

அச்சு ரூபாய்(12345678.5);      // ₹1,23,45,678.50

லட்சம் மற்றும் கோடி பிரிப்பு; ஆயிரம் அல்ல. paNam.qmz காசு_வடிவம், காசாக, லட்சம், கோடி ஆகியவற்றையும் தருகிறது.

ஒரு GST விலைப்பட்டியல்

GST ஒரே மாநிலத்துக்குள் CGST மற்றும் SGST ஆகவும், மாநிலங்களுக்கு இடையே IGST ஆகவும் பிரிகிறது. examples/finance/vaNikavari_pattiyal.qmz இலிருந்து முழுப் பிரிப்பு:

// வரி_பிரிப்பு(தொகை, விகிதம், மாநிலம்_ஒன்றா)
செயல் வரி_பிரிப்பு(தொகை, விகிதம், மாநிலம்_ஒன்றா) {
    மொத்த_வரி = சதவீதம்(தொகை, விகிதம்);
    (மாநிலம்_ஒன்றா) எனில் {
        பாதி = வட்டமிடு(மொத்த_வரி / 2, 2);
        திரும்பு {மொத்தம்: மொத்த_வரி, cgst: பாதி, sgst: மொத்த_வரி - பாதி, igst: 0};
    }
    திரும்பு {மொத்தம்: மொத்த_வரி, cgst: 0, sgst: 0, igst: மொத்த_வரி};
}

இரண்டாவது வட்டமிடு அல்ல, sgst: மொத்த_வரி - பாதி என்பதைக் கவனியுங்கள். ஒற்றைப்படை பைசாக்களை இரண்டாகப் பிரித்து இரு பாதிகளையும் முழுமைப்படுத்தினால் ஒரு பைசா இழக்கப்படும் அல்லது உருவாக்கப்படும்; மீதியை எடுப்பது அதைச் செய்யாது. கீழே துல்லியமான தசமங்கள் இருப்பதால், CGST + SGST அமைப்பாலேயே மொத்தத்துக்குச் சமமாகிறது.

வரிசை உருப்படிகள் பதிவேடுகள்; விலைப்பட்டியல் அவற்றின் அணி:

உருப்படிகள் = [
    {விவரம்: "மடிக்கணினி",   hsn: "8471", அளவு: 3,  விலை: 54999, விகிதம்: 18},
    {விவரம்: "விசைப்பலகை",   hsn: "8471", அளவு: 10, விலை: 1299,  விகிதம்: 18},
    {விவரம்: "அச்சுத்தாள்",   hsn: "4802", அளவு: 25, விலை: 320,   விகிதம்: 12}
];

ஒவ்வொரு உருப்படி இல் உருப்படிகள் {
    அடிப்படை = வரிசை_மதிப்பு(உருப்படி);
    வரி = வரி_பிரிப்பு(அடிப்படை, உருப்படி.விகிதம், உள்_மாநிலம்);
    ...
}

இரட்டைப் பதிவுப் பேரேடு

இறக்கு "nUlakam/kaNakkiyal/kaNakkukaL.qmz";
இறக்கு "nUlakam/kaNakkiyal/pErEtu.qmz";
இறக்கு "nUlakam/kaNakkiyal/aRikkYkaL.qmz";

கணக்குகள் = [
    மதிப்பு(கணக்கு_ஆக்கு("1000", "வங்கி",   வகை_சொத்து(), "நடப்பு")),
    மதிப்பு(கணக்கு_ஆக்கு("3000", "மூலதனம்", வகை_பங்கு(),  "பங்கு"))
];

பேரேடு = [];
பேரேடு = மதிப்பு(பதிவிடு(பேரேடு, பரிவர்த்தனை_ஆக்கு(
    "JV001", "2026-04-01", "தொடக்க மூலதனம்", [
        பற்று_வரிசை("1000", 500000),
        வரவு_வரிசை("3000", 500000)
    ])));

இருப்பாய்வு_அச்சிடு(இருப்பாய்வு(பேரேடு, கணக்குகள்));

இதை நான்கு வடிவமைப்பு முடிவுகள் ஒன்றாக நிறுத்துகின்றன:

பேரேடு ஒரு மதிப்பு. பதிவிடுதல் பழையதைத் திருத்தாமல் புதிய பேரேட்டைத் திருப்புகிறது; எனவே ஒரு பதிவைப் பின்னால் மாற்ற முடியாது.

இரட்டைப் பதிவு கட்டாயப்படுத்தப்படுகிறது. இரு பக்கங்களும் ஒத்துப்போகாத பரிவர்த்தனையை பதிவிடு மறுத்து தவறு திருப்புகிறது. சமநிலையற்ற எதுவும் பேரேட்டை அடைவதில்லை — மேலும் தோல்வி ஒரு மதிப்பாக இருப்பதால், அழைப்பாளர் அதைக் கையாள வேண்டியிருக்கிறது.

இருப்புகள் கணக்கின் சொந்தத் திசையில் படிக்கப்படுகின்றன. பற்றை விட வரவு அதிகமுள்ள ஒரு பொறுப்பு நேர்மறை; பற்று அதிகமுள்ள சொத்து நேர்மறையாக இருப்பது போலவே. ஒவ்வொரு அறிக்கையும் பற்று_இயல்பா ஐச் சார்ந்துள்ளது.

அறிக்கைகள் பேரேட்டிலிருந்து பெறப்படுகின்றன. எதுவும் இருமுறை சேமிக்கப்படுவதில்லை; எனவே ஒரு அறிக்கை அதன் பின்னாலுள்ள பதிவுகளுடன் முரண்பட முடியாது.

இக்கட்டமைப்பு ekmungai/eloquent-ifrs ஐ முன்மாதிரியாகக் கொண்டது; IFRS பாணி வழங்கலுடன்.

தொகுதிகள்

கோப்பு உள்ளடக்கம்
kaNakkukaL.qmz கணக்குப் பட்டியல், ஐந்து IFRS வேர்கள், இயல்பு பக்கங்கள்
kAlam.qmz அறிக்கைக் காலங்கள், இந்திய மற்றும் நாட்காட்டி ஆண்டுகள்
pErEtu.qmz பரிவர்த்தனைகள், வரிசை உருப்படிகள், பதிவிடல், இருப்புகள், கால வடிகட்டிகள்
vari.qmz GST மற்றும் ஒவ்வொரு பரிவர்த்தனை வகையும்
oqukkItu.qmz ஒதுக்கீடு, நிலுவைத் தொகைகள், வயதுப் பகுப்பு
aRikkYkaL.qmz இருப்பாய்வு, வருமான அறிக்கை, இருப்புநிலை, கணக்கு அறிக்கை, பணப்புழக்கம்
niRuvaZam.qmz நிறுவனங்கள், நாணயங்கள், மாற்று வேறுபாடுகள்
mutippu.qmz ஆண்டிறுதி முடிப்பு

கணக்கு வகைகள்

வகை_சொத்து() · வகை_பொறுப்பு() · வகை_பங்கு() · வகை_வருவாய்() · வகை_செலவு()

சொத்துகளும் செலவுகளும் பற்றுப் பக்கத்தில் அதிகரிக்கின்றன; மற்றவை வரவுப் பக்கத்தில்.

பரிவர்த்தனை வகைகள்

இ-தமிழ் eloquent-ifrs இணை
பரிவர்த்தனை_ஆக்கு JournalEntry
விற்பனை_பரிவர்த்தனை ClientInvoice
கொள்முதல்_பரிவர்த்தனை SupplierBill
ரொக்க_விற்பனை CashSale
ரொக்க_கொள்முதல் CashPurchase
பணம்_பெறு ClientReceipt
பணம்_செலுத்து SupplierPayment
வரவு_குறிப்பு CreditNote
பற்று_குறிப்பு DebitNote
எதிர்_பதிவு ContraEntry

நிலையான நூலகத்தின் மீதி

கோப்பு உள்ளடக்கம்
col.qmz சரங்கள் — துண்டு தேடு பிரி ஒன்றிணை ஒழுங்கு தொடங்குகிறதா முடிகிறதா
kaNiqam.qmz கணிதம் — முழுமதிப்பு சிறியது பெரியது கூட்டு சராசரி சதவீதம்
aNi.qmz அணிகள் — உள்ளதா இடம்_காண் தலைகீழ் வெட்டு புலம்_எடு காலியா
paNam.qmz பணம் — ரூபாய் காசு_வடிவம் காசாக லட்சம் கோடி
jEcAZ.qmz JSON — ஜேசான்_ஆக்கு ஜேசான்_படி

மேலுள்ள அனைத்தும் இ-தமிழ் மூலக்குறியீடு. மொழியால் வெளிப்படுத்த முடியாதவற்றை மட்டுமே ஹோஸ்ட் வழங்குகிறது — தசமக் கணிதம், உரை அளவீடு, தேதிகள், கோப்பு மற்றும் சாக்கெட் அணுகல், மேலும் பைட்டுகளும் சமவாய்ப்பும் தேவைப்படும் நான்கு bcrypt/JWT உள்ளமைவுகள்.

எடுத்துக்காட்டுகள்

தொகுப்பிக் களஞ்சியத்திலிருந்து இவற்றை இயக்குங்கள்:

etamil --vm examples/finance/kaNakkiyal.qmz          # முழுக் கணக்கியல் சுழற்சி
etamil --vm examples/finance/vaNikavari_pattiyal.qmz # ஒரு GST விலைப்பட்டியல்
etamil --vm examples/finance/campaLam.qmz            # ஊதியம்
etamil --vm examples/finance/niluvY_vayaqu.qmz       # பெறத்தக்கவற்றின் வயதுப் பகுப்பு

அடுத்து வருவது

கணக்கியல் மற்றும் வரிக் கட்டமைப்பு அடித்தளம்; முடிவுற்ற தொகுப்பு அல்ல. அதே பேரேட்டின் மேல், அதே சொல்லகராதியுடன், மேலும் நான்கு துறைகள் திட்டமிடப்பட்டுள்ளன:

அவற்றுடன்: ITR மற்றும் TDS வார்ப்புருக்கள், GSTN மற்றும் NPCI தளங்களுக்கான REST இணைப்புகள்.

திட்டமிடப்பட்டவை; கட்டப்பட்டவை அல்ல. இப்பிரிவில் உள்ள அனைத்தும் வடிவமைப்பு. இன்று இருப்பது தொகுப்பியின் மையமும், மேலே விவரிக்கப்பட்ட கணக்கியல் கட்டமைப்பும் மட்டுமே. நிலைப் பக்கம் இரண்டுக்கும் இடையே வசதிவாரியான கோட்டை வைத்திருக்கிறது — மேலும் செயல்படுத்தப்படாத எதுவும் அமைதியாக ஏதோ ஒன்றைச் செய்யாமல், தெளிவான பிழைச் செய்தியுடன் நிற்கிறது.