Youtube Video of the emacs conference 2021 talk - https://youtu.be/P3EMosDPobs
Ingredients for Invoicing
- Org-mode
- python environment setup in your org-mode config
- some libraries for python
pip install pandas
pip install tabulate
pip install num2words
- yasnippet package
- MikTeX packages
Step 0: If you don’t have your basic financial info setup, use the file bankinfo.org and customize that file
Step 0.5: If you don’t have the client setup done, use the snippet inv-setup
Create a file <Client-name>.org
in the setup
folder
Step 1: Use snippet inv-item to enter your rate table (Need to be done once per file)
Step 2: Go to the headline Clock Table for Reference
Step 3: C-c C-c
on the clocktable to generate the clocktable for the client
Step 4: Go to the headline Items
Step 5: Run the first python source block using C-c C-c
Step 6: Run the second python source block using C-c C-c
Step 7: Run dispatcher =,eeC-slp= on the ‘TODO Raise Invoice’ headline
Item | HSN | Rate | GST Rate |
Teaching 2021 ACMEClient1 MBA 1 DT | 998393 | 100 | 18 |
Invoice No. 06-11-2021-ACMEClient1 |
GSTIN | {{{MyGST}}} | Invoice Date | 06-11-2021 | State | {{{MyGST_State}}} |
Clock Table for Reference
Headline | Time | |
Total time | 1:00 | 1.00 |
Teaching 2021 ACMEClient1 MBA 1 DT | 1:00 | 1.00 |
#+END
Item | Quantity | HSN/SAC | Rate(INR) | GST(%) | Taxable Value(INR) | **GST* (INR)* | Total(INR) |
Teaching 2021 ACMEClient1 MBA 1 DT | 1.0 | 998393 | 100.0 | 18.0 | 100.00 | 18.00 | 118.00 |
Total | | | | | 100.00 | 18.00 | 118.00 |
Taxable Value | INR 100.0 |
Total amount due | INR 118.0 |
| Rupees one hundred and eighteen Only |
Fill cleartax with invoice
https://gst.gov.in
Invoice No. | 06-11-2021-ACMEClient1 |
Invoice Date | 06-11-2021 |
Teaching 2021 ACMEClient1 MBA 1 DT
Some customizations for the invoice
yasnippet
CurrencySymbol
and CurrencyWords
according to your currency
- Date format (My default is
%d-%m-%Y
)
- Invoice numbering format (
Today's date-ClientName
is my default)
org-babel-tangle-append code
;; https://emacs.stackexchange.com/questions/28098/how-to-change-org-mode-babel-tangle-write-to-file-way-as-append-instead-of-overr
(defun org-babel-tangle-append ()
"Append source code block at point to its tangle file.
The command works like `org-babel-tangle' with prefix arg
but `delete-file' is ignored."
(interactive)
(cl-letf (((symbol-function 'delete-file) #'ignore))
(org-babel-tangle '(4))))
(defun org-babel-tangle-append-setup ()
"Add key-binding C-c C-v C-t for `org-babel-tangle-append'."
(spacemacs/set-leader-keys-for-major-mode 'org-mode
"bA" 'org-babel-tangle-append)
(org-defkey org-mode-map (kbd "C-c C-v +") 'org-babel-tangle-append))
(add-hook 'org-mode-hook #'org-babel-tangle-append-setup)
Check the captions.vtt file in the repo.