Ledger Mode Emacs-এ একটি প্যাকেজ কমান্ড লাইন অ্যাকাউন্টিং প্রোগ্রাম Ledger-এর জন্য। এটি Emacs ব্যবহারকারীদের তাদের প্রিয় টেক্সট এডিটরের কমফোর্ট থেকে Ledger-এর শক্তিশালী ফিচারগুলো ব্যবহার করতে দেয়।
কেন Ledger Mode ব্যবহার করবেন এবং Emacs-এ আপনার হিসাব রক্ষা করবেন?
Ledger Mode সহজ এবং ইন্টিউইটিভ ব্যবহার করা। এটি স্বয়ংক্রিয়ভাবে আপনার আর্থিক হিসাব ব্যালেন্স করে এবং আপনাকে নোটিফাই করে যখন আপনার রেকর্ডে কোনো সমস্যা থাকে। এটি আপনাকে আপনার খরচ এবং আয়ের সোর্স ক্যাটাগরাইজ করতে দেয় যেগুলো প্যাকেজটির মধ্য থেকে সর্ট ও এনালাইজ করা যায়।
সহজ কথায়, Ledger Mode তাদের জন্য একটি চমৎকার এডিশন যারা Emacs ব্যবহার করেন তাদের প্রোডাক্টিভিটি স্যুট হিসেবে। এটি স্প্রেডশিটের প্রয়োজন দূর করে এবং সাথে সাথে আপনাকে আপনার Emacs অভিজ্ঞতার অন্যান্য অংশে ledger ডেটা ব্যবহার করতে দেয়।
Emacs ইন্টারঅপারেবিলিটির আইডিয়ায় কাজ করে। এর মানে Emacs-এ প্রোডিউস করা যেকোনো ডেটা অন্য যেকোনো প্যাকেজে রিপারপজ করা যায়। সেটার মধ্যে, Ledger Mode আপনাকে ledger-এর জন্য লিখা ডেটা Emacs-এ অন্যান্য টুলসের সাথে তৈরি ও কম্বাইন করতে দেয়।
এটি আপনাকে উদাহরণস্বরূপ, Org Mode ডকুমেন্ট তৈরি করতে দেয় যা আর্কাইভড ইমেইল এবং ledger ফাইল উভয়ে লিংক করে। শুধু সেটা নয়, আপনি আপনার ledger এন্ট্রিগুলো আপনার ইমেইলে এবং তার বিপরীতেও সহজে কপি করতে পারেন। এটা সব সম্ভব কারণ Ledger Mode-এ এন্ট্রিগুলো প্লেইন টেক্সট এবং Emacs সহজে সেগুলো যেকোনো বাফারে সরাতে পারে।
Ledger ইউটিলিটি
উপর আলোচনা করা মত, Emacs-এর Ledger Mode শুধু Ledger কমান্ড লাইন ইউটিলিটি অ্যাক্সেস করার একটি উপায়। সেটার সাথে, Ledger প্রোগ্রামটি কী এবং এটি বক্সের বাইরে থেকে কী করতে পারে সেটা জানা গুরুত্বপূর্ণ।
Ledger কীভাবে কাজ করে
Ledger একটি সহজ প্রোগ্রাম যা প্লেইন টেক্সট লেজার পড়ে এবং সেগুলো থেকে অ্যাকাউন্টিং রিপোর্ট তৈরি করে। ট্রেডিশনাল বুককিপিং প্রোগ্রামের বিপরীতে, এটি কোনো ডেটাবেস ফাইল তৈরি বা মডিফাই করে না। এটি Ledger-কে আপনার আর্থিক স্থিতি ট্র্যাক করার জন্য একটি লীন এবং ফ্লেক্সিবল সমাধান করে তোলে।
Ledger এটিকে সম্ভব করে তোলে প্রতিটি এন্ট্রি ফাইলে একটি স্পেসিফিক ফরম্যাট ফলো করার আশা করে। নিচের উদাহরণটি বিবেচনা করুন:
2022/02/16 Expenses Expenses:Food:Lunch 140 PHP Expenses:Food:Snack 50 PHP Assets:Fiat:Cash -190 PHP
এখানে, Ledger প্লেইন টেক্সট ফাইল থেকে তিনটি জিনিস আশা করে:
- একটি টাইটেল লাইন যা একটি ডেট এবং বুক এন্ট্রির জন্য একটি নাম স্পেসিফাই করে। এই কেসে, আমি ফেব্রুয়ারি ১৬-এ একটি Expenses এন্ট্রি যোগ করলাম।
- অ্যাকাউন্টের একটি গ্রুপ যা দেখায় টাকা কোথা থেকে আসে এবং কোথায় যায়। এই কেসে, আমি আমার ক্যাশ অ্যাসেট ব্যবহার করলাম এবং এটিকে একটি এক্সপেন্স অ্যাকাউন্টে মুভ করলাম।
- টাকার ভ্যালু যা আমি মুভ করলাম। এখানে, আমি আমার ক্যাশ অ্যাসেট দুবার মুভ করলাম লাঞ্চ এবং স্ন্যাকের জন্য। যাইহোক, দিনের শেষে সব একসাথে আমার অ্যাসেট থেকে নেওয়া হয়েছিল।
এই তিনটি বেসিক ধারণা এটাকে এমন করে তোলে যে আপনি সহজে Ledger-কে যেকোনো পরিস্থিতিতে অ্যাডাপ্ট করতে পারেন। উদাহরণস্বরূপ, Ledger কারেন্সি এবং কমডিটি দুটোই হ্যান্ডেল করতে পারে। এটি তাদের জন্য উপযোগী যারা শুধু তাদের খরচের অভ্যাস ট্র্যাক করেন না, বরং তাদের ইনভেস্টমেন্টও ট্র্যাক করেন।
Ledger-এ অ্যাকাউন্ট ক্যাটাগরি ডিফাইন করা
একটি গুরুত্বপূর্ণ কথা মনে রাখতে হবে যে Ledger-এ প্রতিটি ট্রানজ্যাকশনের ক্যাটাগরি সম্পূর্ণ আর্বিট্রারি। যাইহোক, পারসোনাল ফাইন্যান্স ট্র্যাক করার সাধারণ প্র্যাকটিস পাঁচ অংশে ভাগ করা যায়:
- Assets অ্যাকাউন্ট হলো সেই কমডিটি এবং কারেন্সি যেগুলো আপনার মালিকানা। এটি হতে পারে একটি সিঙ্গল কারেন্সি বা কারেন্সি, স্টক এবং আইটেম ইনভেন্টরির মিশ্রণ।
- Expenses অ্যাকাউন্ট হলো সেই কমডিটি যেগুলো আপনি আপনার অ্যাসেট দিয়ে কিনেছেন।
- Income অ্যাকাউন্ট হলো যেখানে থেকে আপনি আপনার সম্পদের সোর্স থেকে টাকা পুল করতে পারেন। উদাহরণস্বরূপ, আপনি যে স্যালারি পান সেটি এই অ্যাকাউন্টের আন্ডার আটাচ করতে পারেন।
- Liabilities অ্যাকাউন্ট হলো যেখানে আপনি আপনার বর্তমানে বাকি সকল কমডিটি অ্যাসাইন করতে পারেন।
- Equity অ্যাকাউন্ট হলো একটি স্পেশাল অ্যাকাউন্ট যা আপনি আপনার বর্তমান নেটওয়ার্ধ নির্ধারণ করতে ব্যবহার করতে পারেন। এটি সাধারণত Ledger-এ ওপেনিং ব্যালেন্স তৈরি করার সময় ব্যবহার হয়।
আপনি একটি ট্রানজ্যাকশন আরও স্পেসিফাই করতে পারেন সেই পাঁচ ক্যাটাগরির পর কোলন (:) অ্যাপেন্ড করে। উদাহরণস্বরূপ, Expenses:Food:Lunch লেবেলযুক্ত একটি ট্রানজ্যাকশন একটি থ্রি-লেভেল হায়ারার্কি দ্বারা রিপ্রেজেন্ট করা যায়।
Ledger ইনস্টল করা
এটি মনে রেখে, Ledger ইনস্টল করা সহজ। আপনি অধিকাংশ Linux ডিস্ট্রিবিউশনের রিপোজিটরিতে এটিকে পাবেন। উদাহরণস্বরূপ, Debian এবং Ubuntu-তে apt দিয়ে ledger ইনস্টল করা যায়:
sudo apt install ledger
Fedora-তে dnf ব্যবহার করুন:
sudo dnf install ledger
Arch Linux-এ pacman ব্যবহার করুন:
sudo pacman -S ledger
আমার কেসে, আমি Debian ব্যবহার করছি তাই আমি apt দিয়ে ledger ইনস্টল করব।
Emacs-এ Ledger Mode ব্যবহার করা
Ledger প্রোগ্রাম Emacs-এ ব্যবহার করতে, আপনাকে এর কোম্পানিয়ন প্যাকেজ, Ledger Mode ইনস্টল করতে হবে। এই প্যাকেজ ডিফল্ট ELPA রিপোজিটরিতে উপলব্ধ। তাই, আপনি ইতিমধ্যে Emacs-এর প্যাকেজ ম্যানেজারের মাধ্যমে ইনস্টল করতে পারেন।
- এটি করতে, আপনি Alt + X চাপুন এবং package-install টাইপ করুন। এটি একটি কমান্ড বাফার আনবে যেখানে আপনি আপনার Emacs-এ যোগ করতে চান সেই প্যাকেজের নাম টাইপ করতে পারেন। ledger-mode টাইপ করুন।
- সেখান থেকে, Emacs প্যাকেজের সোর্স কোড ডাউনলোড ও কম্পাইল করবে। এরপর, আপনি এখন Ledger Mode দিয়ে Emacs-এ Ledger ব্যবহার করতে পারবেন।
Emacs-এ আপনার প্রথম Ledger তৈরি করা
ডিফল্টভাবে, Ledger Mode স্বয়ংক্রিয়ভাবে এনেবল হয় যখন Emacs একটি ফাইল খুলে যা .ledger দিয়ে শেষ হয়।
- তাই, আপনি আপনার নিজস্ব ledger ফাইল Emacs-এ তৈরি করা শুরু করতে পারেন Ctrl + X, Ctrl + F চাপায়।
- এটি একটি বাফার খুলবে যেখানে আপনি ফাইলের নাম টাইপ করতে পারেন যা আপনি তৈরি করতে চান। example.ledger টাইপ করুন।
- এরপর, Emacs "example.ledger" ফাইলটি করেন্ট ডিরেক্টরিতে তৈরি করবে এবং আপনার জন্য খুলবে। এখান থেকে, আপনি আপনার ledger ফাইল আপনার ট্রানজ্যাকশন দিয়ে পপুলেট করা শুরু করতে পারেন।
Emacs-এ আপনার ওপেনিং ব্যালেন্স তৈরি করা
Ledger-এ আপনার আর্থিক হিসাব ট্র্যাক করা শুরু করতে, আপনাকে প্রথমে আপনার বর্তমান ব্যালেন্স দিতে হবে। আপনি এটি করতে পারেন আপনার বর্তমান যা আছে এবং বাকি আছে সেটি একটি Equity অ্যাকাউন্ট থেকে ডিডাক্ট করে। উদাহরণস্বরূপ, এটি কারো ওপেনিং ব্যালেন্স যাদের বেশ কিছু Assets এবং Liabilities আছে:
2022/02/10 * Opening Balance Assets:Bitcoin:Savings 0.045 BTC Assets:Bitcoin:Checking 0.00050712 BTC Assets:Fiat:Checking 15,000.00 PHP Assets:Fiat:Savings 255,944.00 PHP Liabilities:Fiat:Car Loan -450,000.00 PHP Liabilities:Fiat:Credit Payable -5,000.00 PHP Liabilities:Fiat:Home Loan -755,831.34 PHP Equity:Opening Balance
ওপেনিং Ledger এন্ট্রির স্ট্রাকচার উপরের উদাহরণের সাথে মিলিত একটি কী পার্থক্যের সাথে। এখানে, আমরা এন্ট্রি টাইটেলের আগে একটি एস্টেরিস্ক যোগ করলাম Ledger-কে বলতে যে এই ট্রানজ্যাকশন ইতিমধ্যে "clear"। এর মানে Ledger এই অ্যাকাউন্টগুলো থেকে অ্যাড ও ডিডাক্ট করতে ক্লিয়ার।
আপনার বর্তমান ব্যালেন্স চেক করা
একবার হলে, আপনি এখন টেস্ট করতে পারেন Ledger আপনার ফাইলটি সঠিকভাবে ডিটেক্ট করছে কিনা।
- এটি করতে, আপনি Ctrl + C, Ctrl + O, Ctrl + R চাপতে পারেন। এটি Ledger Mode-কে আপনার জন্য একটি রিপোর্ট জেনারেট করতে বলবে।
- bal টাইপ করুন রানিং ব্যালেন্স ডিসপ্লে করার জন্য।
- এটি আপনার Ledger ফাইলে যোগ করা সকল অ্যাকাউন্টের একটি হায়ারার্কি প্রোডিউস করবে। এই সবই শেষ লাইনে জিরো টোটাল হওয়া উচিত।
নতুন ট্রানজ্যাকশন যোগ করা
এই সাথে, আপনি এখন আপনার ledger ফাইলে নতুন ট্রানজ্যাকশন যোগ করতে পারেন।
- আপনি এটি করতে পারেন Ctrl + C, Ctrl + A চাপায়। এটি Ledger Mode-কে বলবে আপনি একটি নতুন ট্রানজ্যাকশন তৈরি করতে চান।
- এটি তারপর আপনাকে জিজ্ঞেস করবে আপনি এই ট্রানজ্যাকশনের জন্য কোন ডেট চান। এটি উপযোগী যদি আপনি চেক ইস্যু করেন যা একটি নির্দিষ্ট তারিখের পর ক্লিয়ার হবে। আমার কেসে, আমি বর্তমান ডেট ব্যবহার করতে চাই তাই এখানে Enter চাপব।
- সেখান থেকে Ledger Mode আপনাকে জিজ্ঞেস করবে পূর্বে লগ করা একটি ট্রানজ্যাকশনের নাম। আপনি এই ফিচার ব্যবহার করতে পারেন যদি আপনি রিকারিং পেমেন্ট করছেন এবং আপনি শুধু একটি পূর্বের ট্রানজ্যাকশন কপি করতে চান। আমার কেসে, আমি একটি নতুন ট্রানজ্যাকশন তৈরি করতে চাই তাই এখানেও Enter চাপলাম।
- এই সাথে, Ledger Mode বর্তমান ডেট সহ একটি ব্ল্যাঙ্ক লাইন তৈরি করবে। আপনি এখান থেকে আপনি যা ট্রানজ্যাকশন করতে চান সেটি যোগ করতে পারেন। উদাহরণস্বরূপ, আমি আমার ওপেনিং ব্যালেন্সের পর নিচের ট্রানজ্যাকশন যোগ করলাম:
2022/02/10 * Opening Balance Assets:PHP:Checking 5,000.00 PHP Assets:PHP:Savings 10,000.00 PHP Liabilities:PHP:Credit Payable -5,000.00 PHP Equity:Opening Balance 2022/02/11 My First Transaction Expenses:Food:Snack 250.00 PHP Assets:PHP:Checking -250.00 PHP
বেসিক রিপোর্ট জেনারেট করা
- উপর আলোচনা করা মত, আপনি Ctrl + C, Ctrl + O, Ctrl + R চাপতে পারেন একটি রিপোর্ট জেনারেট করতে। bal ছাড়া, যাইহোক, আপনি Ledger-র ভিতর থেকে ডিফারেন্ট রিপোর্ট জেনারেট করার জন্য অন্যান্য কমান্ডও ব্যবহার করতে পারেন।
- উদাহরণস্বরূপ, আপনি account টাইপ করতে পারেন এবং অ্যাকাউন্টের নাম একটি স্পেসিফিক ক্যাটাগরির জন্য অ্যাকাউন্ট স্টেটমেন্ট তৈরি করতে। আমার কেসে, আমি "Assets" টাইপ করলাম আমার Assets ক্যাটাগরির জন্য একটি স্টেটমেন্ট তৈরি করতে।
- অন্যদিকে, আপনি payee টাইপ করতে পারেন আপনার দেওয়া স্ট্রিংয়ের সাথে টাইটেল করা সকল ট্রানজ্যাকশন দেখাতে। উদাহরণস্বরূপ, আমি "snack" টাইপ করতে পারি শুধু snack শব্দযুক্ত সকল ট্রানজ্যাকশন ডিসপ্লে করতে।
- শেষে, আপনি reg টাইপ করতে পারেন পুরো ledger-এর একটি রেজিস্টার রিপোর্ট প্রোডিউস করতে। এটি একটি আরও ডিটেইলড ব্যালেন্স রিপোর্ট যেখানে Ledger প্রতিটি কমডিটি ট্র্যাক করে এবং সেগুলো কীভাবে সব ব্যালেন্স করে।
অভিনন্দন! আপনি এখন জানেন কীভাবে Emacs আপনাকে আপনার আর্থিক হিসাব ট্র্যাক করতে সাহায্য করতে পারে। আপনি Ledger প্রোগ্রাম সম্পর্কেও জানলেন এবং কীভাবে আপনি এটি ব্যবহার করতে পারেন আপনার আর্থিক স্থিতি সম্পর্কে ডিটেইলড রিপোর্ট তৈরি করতে।
প্রশ্নোত্তর
১. Ledger এরর ফেলছে যে আমার ledger ব্যালেন্সড নয়। আমি কী ভুল করলাম?
এটি অনেক সমস্যার কারণে হতে পারে। সবচেয়ে সাধারণটি হলো আপনি ledger-এ একটি ট্রানজ্যাকশন ক্লোজ করতে ভুলে গেছেন। এটি ফিক্স করার একটি উপায় হলো চেক করা যেকোনো ট্রানজ্যাকশন আছে কিনা যেগুলোর কোনো নেগেটিভ ভ্যালু নেই।
Ledger-এ নেগেটিভ ভ্যালু মানে আপনি একটি অ্যাকাউন্ট থেকে একটা পরিমাণ নিচ্ছেন। অন্যদিকে, পজিটিভ ভ্যালু মানে আপনি সেটিতে যোগ করছেন। এই দুটি ভ্যালু একটি অ্যাসেট ফ্লো রিপ্রেজেন্ট করে এবং Ledger-এ আপনার অ্যাকাউন্ট ব্যালেন্স করার জন্য এটি রিকোয়ার্ড।
সেটার সাথে, এর মানে হলো প্রতিটি ট্রানজ্যাকশন যা আপনি Ledger-এ করবেন। আপনাকে একটি পজিটিভ এবং একটি নেগেটিভ ভ্যালু থাকতে হবে।
২. কি Ledger শুধু রিয়েল ওয়ার্ল্ড অ্যাসেটের সাথে ব্যবহারযোগ্য?
সব সময় নয়। উপরে আলোচনা করা মত, Ledger-এ ব্যবহৃত সব অ্যাকাউন্ট সম্পূর্ণ আর্বিট্রারি। এর মানে যখন এই গাইডের উদাহরণগুলো রিয়েল ওয়ার্ল্ড অ্যাসেটে পয়েন্ট করে, আপনি Ledger ব্যবহার করতে পারেন ভার্চুয়াল অ্যাসেট ট্র্যাক করতে।
উদাহরণস্বরূপ, এটি একটি জনপ্রিয় MMO গেম EVE Online-এ অ্যাসেট ট্র্যাক করা একটি ledger-এর এক্সসার্প্ট:
2022/01/04 Venture Profits Main:Assets:Liquid:ISK 150,000,000.00 ISK Alt 1:Income:Ore Mining -10,000,000.00 ISK Alt 1:Income:Station Trading -40,000,000.00 ISK Alt 2:Income:Data Running (0.0) -100,000,000.00 ISK 2022/01/07 Upkeep Costs Alt 1:Expenses:Ship Insurance 10,000.00 ISK Alt 2:Expenses:New Ship 53,450,000.00 ISK Main:Assets:Liquid:ISK -53,460,000.00 ISK
৩. কি ট্রানজ্যাকশনের অর্ডার বैंक স্টেটমেন্টের মতো রিভার্স করা সম্ভব?
হ্যাঁ এবং না। আপনি Ledger যা রিপোর্ট তৈরি করে সেগুলোর ট্রানজ্যাকশনের অর্ডার রিভার্স করতে পারেন। যাইহোক, আপনি আপনার Ledger ফাইলের ট্রানজ্যাকশনের অর্ডার রিভার্স করতে পারবেন না। পূর্ব者 করার জন্য, আপনি একটি রিপোর্ট বাফারে Shift + R চাপতে পারেন এর অর্ডার রিভার্স করতে।