balaramadurai / invoice-gen

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Finding Your (In)voice

Youtube Video of the emacs conference 2021 talk - https://youtu.be/P3EMosDPobs

Ingredients for Invoicing

  1. Org-mode
  2. python environment setup in your org-mode config
  3. some libraries for python
    • pip install pandas
    • pip install tabulate
    • pip install num2words
  4. yasnippet package
  5. MikTeX packages

Demo

Instructions

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

ItemHSNRateGST Rate
Teaching 2021 ACMEClient1 MBA 1 DT99839310018

Raise Invoice


Invoice No. 06-11-2021-ACMEClient1
GSTIN{{{MyGST}}}Invoice Date06-11-2021State{{{MyGST_State}}}

Due Date: 06-12-2021

Clock Table for Reference

HeadlineTime
Total time1:001.00
Teaching 2021 ACMEClient1 MBA 1 DT1:001.00

#+END

Items

ItemQuantityHSN/SACRate(INR)GST(%)Taxable Value(INR)**GST* (INR)*Total(INR)
Teaching 2021 ACMEClient1 MBA 1 DT1.0998393100.018.0100.0018.00118.00
Total100.0018.00118.00
Taxable ValueINR 100.0
Total amount dueINR 118.0
Rupees one hundred and eighteen Only

Fill cleartax with invoice

https://gst.gov.in
Invoice No.06-11-2021-ACMEClient1
Invoice Date06-11-2021

Check if Invoice is paid

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)

Subtitles

Check the captions.vtt file in the repo.

About


Languages

Language:TeX 52.2%Language:YASnippet 47.8%