summaryrefslogtreecommitdiffstats
path: root/2021/captions/emacsconf-2021-invoice--find-your-invoice-emacs-for-invoicing--bala-ramadurai--main.vtt
diff options
context:
space:
mode:
Diffstat (limited to '2021/captions/emacsconf-2021-invoice--find-your-invoice-emacs-for-invoicing--bala-ramadurai--main.vtt')
-rw-r--r--2021/captions/emacsconf-2021-invoice--find-your-invoice-emacs-for-invoicing--bala-ramadurai--main.vtt706
1 files changed, 706 insertions, 0 deletions
diff --git a/2021/captions/emacsconf-2021-invoice--find-your-invoice-emacs-for-invoicing--bala-ramadurai--main.vtt b/2021/captions/emacsconf-2021-invoice--find-your-invoice-emacs-for-invoicing--bala-ramadurai--main.vtt
new file mode 100644
index 00000000..ecb67f63
--- /dev/null
+++ b/2021/captions/emacsconf-2021-invoice--find-your-invoice-emacs-for-invoicing--bala-ramadurai--main.vtt
@@ -0,0 +1,706 @@
+WEBVTT
+
+00:10.290 --> 00:22.480
+What is an invoice?
+
+00:22.480 --> 00:25.630
+Invoice is a document
+
+00:25.630 --> 00:28.660
+that you give it to your customer
+
+00:28.660 --> 00:30.416
+so that they can pay you
+
+00:30.416 --> 00:31.450
+for your service or your goods.
+
+00:31.450 --> 00:35.720
+But you are a professor and consultant.
+
+00:35.720 --> 00:38.730
+Why do you need to generate invoices?
+
+00:38.730 --> 00:39.730
+Well...
+
+00:39.730 --> 00:46.640
+I do a service for my clients
+
+00:46.640 --> 00:47.884
+if I'm a consultant,
+
+00:47.884 --> 00:48.999
+and when I'm a professor,
+
+00:48.999 --> 00:51.530
+I'm teaching students,
+
+00:51.530 --> 00:54.910
+so I have to generate an invoice.
+
+00:54.910 --> 00:58.420
+Why not use Excel or something simple
+
+00:58.420 --> 01:00.079
+to generate your invoices?
+
+01:00.079 --> 01:01.079
+I've tried that.
+
+01:01.079 --> 01:04.609
+It's no good, when it... particularly,
+
+01:04.609 --> 01:07.150
+when there are many clients,
+
+01:07.150 --> 01:09.035
+managing Excels and templates
+
+01:09.035 --> 01:10.799
+becomes very very tricky.
+
+01:10.799 --> 01:15.725
+Why don't you hire someone, you know, professional
+
+01:15.725 --> 01:17.350
+to do these for you?
+
+01:17.350 --> 01:18.428
+I've tried it.
+
+01:18.428 --> 01:22.381
+I have to give them lots of information.
+
+01:22.381 --> 01:25.140
+Not that there's anything wrong with them,
+
+01:25.140 --> 01:30.130
+just that I found it to be a bit too tricky.
+
+01:30.130 --> 01:31.250
+Professional software?
+
+01:31.250 --> 01:33.902
+Good point. I've tried that too.
+
+01:33.902 --> 01:36.900
+But, what's the fun in that, right?
+
+01:36.900 --> 01:38.850
+So what did you do?
+
+01:38.850 --> 01:40.869
+Haa.. this is the interesting part!
+
+01:40.869 --> 01:45.600
+I took a software called Emacs Org mode
+
+01:45.600 --> 01:50.640
+and with that, I added Python code to it.
+
+01:50.640 --> 01:52.418
+I added so many other things to it,
+
+01:52.418 --> 01:56.168
+and then it became a really nice
+
+01:56.168 --> 01:59.640
+customizable way to generate invoices.
+
+01:59.640 --> 02:04.549
+Whoa whoa whoa... Just slow it down, bro.
+
+02:04.549 --> 02:06.659
+Give me the story.
+
+02:06.659 --> 02:10.170
+Hey. Okay... Okay... I will.
+
+02:10.170 --> 02:11.170
+Story.
+
+02:11.170 --> 02:14.620
+Uh.. Story is simple.
+
+02:14.620 --> 02:16.590
+The client wanted an invoice.
+
+02:16.590 --> 02:19.900
+So, I generated an invoice.
+
+02:19.900 --> 02:21.419
+It wasn't good enough.
+
+02:21.419 --> 02:24.959
+So, I hacked some little bit of it.
+
+02:24.959 --> 02:28.480
+I changed every time a new client came.
+
+02:28.480 --> 02:29.848
+I had to do it all over again.
+
+02:29.848 --> 02:30.989
+I did that. I did it.
+
+02:30.989 --> 02:33.110
+Then I got really tired of it.
+
+02:33.110 --> 02:36.760
+And that's what led me to all these customizations.
+
+02:36.760 --> 02:38.632
+I want features.
+
+02:38.632 --> 02:43.249
+So, rapid fire questions. Ready? Yep.
+
+02:43.249 --> 02:46.079
+Project management? Yep.
+
+02:46.079 --> 02:48.079
+Format customization? Yes.
+
+02:48.079 --> 02:50.079
+PDF export? Yes.
+
+02:50.079 --> 02:52.079
+Multi-client support? Yes.
+
+02:52.079 --> 02:53.579
+Washing my clothes?
+
+02:53.579 --> 02:54.959
+Yes... No.
+
+02:54.959 --> 02:57.013
+Haa. I was just testing you,
+
+02:57.013 --> 03:00.900
+if you're paying attention or not.
+
+03:00.900 --> 03:04.659
+Logo and signature customization? Yes.
+
+03:04.659 --> 03:06.730
+Multi-currency support? Yes.
+
+03:06.730 --> 03:08.930
+Okay, enough talky or it's just...
+
+03:08.930 --> 03:10.930
+Can you show me a demo that you did?
+
+03:10.930 --> 03:12.950
+Or is it just talky.
+
+03:12.950 --> 03:15.239
+Yes, of course. Demo.
+
+03:15.239 --> 03:16.969
+Okay, demo time.
+
+03:16.969 --> 03:18.909
+Some ingredients for invoicing.
+
+03:18.909 --> 03:21.069
+Org mode, of course.
+
+03:21.069 --> 03:23.849
+Python environment and libraries for Python:
+
+03:23.849 --> 03:25.930
+pandas, tabulate, numbers.
+
+03:25.930 --> 03:28.260
+yasnippet package, very useful.
+
+03:28.260 --> 03:30.969
+And I use for LaTeX, MikTeX packages.
+
+03:30.969 --> 03:34.090
+So, I have a project already set up.
+
+03:34.090 --> 03:36.540
+This is what we have.
+
+03:36.540 --> 03:38.673
+The project is Teaching 2021
+
+03:38.673 --> 03:41.239
+and you can set all this up.
+
+03:41.239 --> 03:43.819
+So let's start with the first and foremost.
+
+03:43.819 --> 03:46.849
+Okay, so we're going to use
+
+03:46.849 --> 03:49.209
+the yasnippet package.
+
+03:49.209 --> 03:52.219
+uh.. um.. sorry, the invoice, okay.
+
+03:52.219 --> 03:54.550
+This one introduced, it gives you this whole...
+
+03:54.550 --> 03:56.377
+generates this whole bunch of code
+
+03:56.377 --> 03:57.150
+based on a template.
+
+03:57.150 --> 03:58.371
+All you're going to do
+
+03:58.371 --> 04:00.939
+is to type out the client's name.
+
+04:00.939 --> 04:02.797
+Okay and that's it.
+
+04:02.797 --> 04:04.469
+That's all there is to it.
+
+04:04.469 --> 04:06.446
+Okay there's a whole bunch of instructions
+
+04:06.446 --> 04:07.199
+that you can follow.
+
+04:07.199 --> 04:09.284
+If it's for the first time,
+
+04:09.284 --> 04:10.549
+use bankinfo.org.
+
+04:10.549 --> 04:14.409
+Let's check out what bankinfo.org involves.
+
+04:14.409 --> 04:16.819
+Okay so you can copy this template
+
+04:16.819 --> 04:19.269
+from my GitHub repository.
+
+04:19.269 --> 04:24.300
+It's basically setup of the LaTeX tags,
+
+04:24.300 --> 04:26.854
+and particularly this text file,
+
+04:26.854 --> 04:28.620
+which is a template.
+
+04:28.620 --> 04:30.469
+There's some personal info
+
+04:30.469 --> 04:32.125
+for all the details that you want.
+
+04:32.125 --> 04:33.814
+Bank information.
+
+04:33.814 --> 04:35.580
+You can look at it in detail
+
+04:35.580 --> 04:40.330
+from my repo. The tax invoice...
+
+04:40.330 --> 04:42.840
+There are some basic constructs.
+
+04:42.840 --> 04:45.809
+You can totally change any of these
+
+04:45.809 --> 04:47.620
+to your liking.
+
+04:47.620 --> 04:50.320
+Okay, so that's bank info.
+
+04:50.320 --> 04:52.200
+Go back. That's the first part.
+
+04:52.200 --> 04:55.540
+The second part is creating a client name.
+
+04:55.540 --> 04:58.420
+So let's look at this setup,
+
+04:58.420 --> 05:00.710
+and I have one created already.
+
+05:00.710 --> 05:02.804
+So, in order to create this,
+
+05:02.804 --> 05:03.880
+all you need to do
+
+05:03.880 --> 05:06.610
+is to use the inv-setup
+
+05:06.610 --> 05:10.300
+invoice setup for your client,
+
+05:10.300 --> 05:12.230
+and it will give you all the information.
+
+05:12.230 --> 05:14.790
+All you need to do is type in here
+
+05:14.790 --> 05:16.410
+and then type in the client's name,
+
+05:16.410 --> 05:18.785
+exactly the same that you see
+
+05:18.785 --> 05:20.210
+as the file name.
+
+05:20.210 --> 05:22.620
+Okay, client one. And that's it.
+
+05:22.620 --> 05:24.250
+You're all set for you.
+
+05:24.250 --> 05:26.218
+Okay, so that's what it looks like.
+
+05:26.218 --> 05:28.043
+All the address and stuff
+
+05:28.043 --> 05:29.710
+filled out here.
+
+05:29.710 --> 05:32.131
+Okay. And then the next one
+
+05:32.131 --> 05:37.010
+is to use the... One time,
+
+05:37.010 --> 05:38.890
+you're going to do the invoice item,
+
+05:38.890 --> 05:40.590
+which is the rate table.
+
+05:40.590 --> 05:42.490
+So let's do the invoice.
+
+05:42.490 --> 05:44.400
+Invoice item...
+
+05:44.400 --> 05:47.080
+This is item master.
+
+05:47.080 --> 05:50.320
+So here again, another place
+
+05:50.320 --> 05:53.060
+where you have to enter the client name,
+
+05:53.060 --> 05:56.780
+and your rate table is ready for use.
+
+05:56.780 --> 05:58.891
+Okay. So that was...
+
+05:58.891 --> 06:00.749
+Now we go to step two,
+
+06:00.749 --> 06:02.510
+which is clock table for reference.
+
+06:02.510 --> 06:04.150
+Okay. Let's go to the clock table.
+
+06:04.150 --> 06:09.660
+I already set up this for ACMEClient1,
+
+06:09.660 --> 06:12.030
+and I give it a tag: billable.
+
+06:12.030 --> 06:13.260
+Okay. We will see that...
+
+06:13.260 --> 06:17.470
+Where have I done that?
+
+06:17.470 --> 06:23.890
+Okay, so that's the client, you know,
+
+06:23.890 --> 06:25.360
+ACMEClient1 table teaching 2021.
+
+06:25.360 --> 06:29.090
+I've clocked it for the previous month.
+
+06:29.090 --> 06:30.090
+That's what you will see.
+
+06:30.090 --> 06:31.090
+Let's see it again.
+
+06:31.090 --> 06:34.840
+Okay. That's... Let's put the instructions.
+
+06:34.840 --> 06:38.110
+And then you go to clock table
+
+06:38.110 --> 06:40.490
+to generate the clock table for the client.
+
+06:40.490 --> 06:42.342
+Okay. So clock table...
+
+06:42.342 --> 06:44.335
+This is only for your reference,
+
+06:44.335 --> 06:45.484
+not going to be exported.
+
+06:45.484 --> 06:50.586
+Here we get a clock table. All right.
+
+06:50.586 --> 06:53.150
+So with this, you get the clock table.
+
+06:53.150 --> 06:55.670
+Okay. Now go into the items part.
+
+06:55.670 --> 06:59.810
+You will see two Python blocks,
+
+06:59.810 --> 07:01.500
+which is what the next instruction says.
+
+07:01.500 --> 07:03.526
+Go into the python block
+
+07:03.526 --> 07:06.180
+and do Control-c c (C-c c).
+
+07:06.180 --> 07:09.860
+Go to the control python source block,
+
+07:09.860 --> 07:12.413
+second one, and do Ctrl-c c...
+
+07:12.413 --> 07:14.490
+Ctrl-c Ctrl-c (C-c C-c) rather.
+
+07:14.490 --> 07:16.028
+and then finally come back
+
+07:16.028 --> 07:18.765
+to Raise Invoice and do dispatcher
+
+07:18.765 --> 07:21.270
+which is exported into PDF.
+
+07:21.270 --> 07:22.718
+Okay, let's do that.
+
+07:22.718 --> 07:27.853
+First one is... I just run this code,
+
+07:27.853 --> 07:30.950
+and it generated this table for me.
+
+07:30.950 --> 07:34.160
+Okay. So it has all the details.
+
+07:34.160 --> 07:35.253
+Now we go in
+
+07:35.253 --> 07:39.560
+the second source code block,
+
+07:39.560 --> 07:41.700
+and does all this...
+
+07:41.700 --> 07:43.530
+And it has generated this stuff.
+
+07:43.530 --> 07:46.335
+Plus, you should note that for beancount,
+
+07:46.335 --> 07:50.795
+it has also generated the block for that.
+
+07:50.795 --> 07:51.775
+It's all in the code.
+
+07:51.775 --> 07:53.820
+You can customize it if you're on Ledger.
+
+07:53.820 --> 07:54.782
+You can customize it
+
+07:54.782 --> 07:55.390
+to the way you want,
+
+07:55.390 --> 07:56.978
+any accounts that you want to change.
+
+07:56.978 --> 07:58.870
+It's all customizable.
+
+07:58.870 --> 08:00.710
+Here, even the currency symbols
+
+08:00.710 --> 08:02.840
+can be changed from INR and Rupees
+
+08:02.840 --> 08:04.681
+to whatever currency you have
+
+08:04.681 --> 08:07.190
+can be changed accordingly.
+
+08:07.190 --> 08:11.304
+I have org-babel-tangle-append code
+
+08:11.304 --> 08:12.650
+that I will share in the...
+
+08:12.650 --> 08:13.872
+I've borrowed it
+
+08:13.872 --> 08:14.889
+from somebody on the Internet,
+
+08:14.889 --> 08:16.440
+so I'll share that as well
+
+08:16.440 --> 08:18.650
+in my GitHub repo.
+
+08:18.650 --> 08:20.830
+Lastly, I just want to share that
+
+08:20.830 --> 08:23.730
+you can fill your GST website
+
+08:23.730 --> 08:24.988
+with these info,
+
+08:24.988 --> 08:26.171
+so you can... You can even put in
+
+08:26.171 --> 08:27.590
+as many entries as you want
+
+08:27.590 --> 08:29.370
+in your yasnippet.
+
+08:29.370 --> 08:30.560
+Customize it the way you want.
+
+08:30.560 --> 08:32.590
+I also added a month later
+
+08:32.590 --> 08:33.820
+due date reminder,
+
+08:33.820 --> 08:36.239
+saying if the invoice is paid or not.
+
+08:36.239 --> 08:37.209
+Okay.
+
+08:37.209 --> 08:42.051
+So, a few tips to end this demo.
+
+08:42.051 --> 08:44.990
+You can customize currency symbol
+
+08:44.990 --> 08:45.860
+and currency words
+
+08:45.860 --> 08:47.540
+according to your own currency.
+
+08:47.540 --> 08:51.269
+I use the European/Indian date format
+
+08:51.269 --> 08:54.980
+which is %d-%m-%Y. You can also...
+
+08:54.980 --> 08:56.816
+The language is Indian English,
+
+08:56.816 --> 08:57.998
+so it will change according--
+
+08:57.998 --> 08:59.860
+the numerals change according to the
+
+08:59.860 --> 09:02.180
+Indian format. Numbering format
+
+09:02.180 --> 09:04.959
+for invoice number is today's date
+
+09:04.959 --> 09:06.620
+followed by client name.
+
+09:06.620 --> 09:07.959
+That's my default.
+
+09:07.959 --> 09:11.120
+You can customize that as well.
+
+09:11.120 --> 09:13.574
+Let's try and export this
+
+09:13.574 --> 09:17.325
+to the subtree. Ctrl-s.
+
+09:17.325 --> 09:20.579
+So that's step number seven.
+
+09:20.579 --> 09:22.029
+And there it is,
+
+09:22.029 --> 09:23.339
+the tax invoice
+
+09:23.339 --> 09:25.870
+for Dr. Wile E. Coyote,
+
+09:25.870 --> 09:27.810
+and with a lovely signature as well.
+
+09:27.810 --> 09:29.990
+[Interviewer:] Well, that's great!
+
+09:29.990 --> 09:34.309
+If I were to try this out, what do I do?
+
+09:34.309 --> 09:36.779
+Go to github.com, into my repository.
+
+09:36.779 --> 09:38.915
+I'll leave my GitHub URL.
+
+09:38.915 --> 09:42.790
+You can download it use it,
+
+09:42.790 --> 09:43.848
+and let me know
+
+09:43.848 --> 09:46.829
+how it pans out for you.
+
+09:46.829 --> 09:47.632
+[Interviewer:] I have spent
+
+00:09:47.632 --> 00:09:49.018
+so much time on this.
+
+00:09:49.018 --> 00:09:50.060
+May I invoice you?