This month I started with working on making our invoice system more automatic (UPDATE: This has turned to be quite a huge project, to the point where it spans a couple of months so I’ve updated this post to just include everything I’ve done on it). The first part of this project was to simply display the invoice details of people who created a competition on a page for the salespeople to access. They would then put these details on a spreadsheet, which then our accountant would use to create the invoice. Obviously a very manual task. So after doing this simple task, I was introduced to Xero, the platform we use to process invoices, and I was tasked with using those invoicing details to automatically send an invoice to Xero. As you’d expect, they have an API so it was just a matter of learning this API. There was also some PHP wrappers for the Xero API so I wouldn’t have manually set up everything to send requests to the API. I initially opted to go for a Laravel wrapper, however, I did end up moving away from this further into the project as the Laravel wrapper wouldn’t let me access some extra stuff I needed. I did do a pull request for the wrapper to add the feature I need but I heard nothing back from it. The wrapper made it quite intuitive to create an invoice, and all the information that is supposed to go on the invoice, I already have from the post method of the competition creation. There was one tricky bit I had to figure out, however. On the page to that displays the competition with invoices, we wanted a way to show whether the invoice had been paid or not. My initial idea, which I did implement, was to set the invoice number to competition ID. That when I load up the invoice page, I make a request to Xero asking for an invoice with the invoice number been the comp id. However, the account said that we shouldn’t do this as it could potentially interfere with any financial audits we receive. After this I did think of a way to use the original invoice numbers - I’m quite annoyed I didn’t think of this in the first place. What I did was use the invoice number of the most recently created the invoice, and I didn’t even have to make a request to Xero as the invoice number seems to be stored locally in the object I use to create the invoice. So once I did that I stored that invoice number in the database. After all of this was completed I was told to stop working on this until we have the new contract sorted with Time Inc.
Another thing that happened this month was we moved from Pure 360 to E-Shot as our newsletter email platform. Our servers for pure would be switched off at the end of March so we had to move the data over. Since I was the one currently doing the newsletter data every other day, I was tasked with setting up the contacts lists for each newsletter account. The benefit of this platform was that I only had to create and upload the lists once and everything would be automated thereafter (e.g new subscriptions and unsubs). Nothing went wrong here it was just quite a tedious process.
I also started a new project on MWoosh this month. It is a page where you’ll be able to search for users based on different criteria such as age, location, what sections they relate to etc. All of these criteria can be concatenated so you can search by each criterion if you want or just one. I started this right at the end of the month and I only got the front end done so I’ll talk more about next month.