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