March 2019 In Brief

Posted by admin on 2019-04-03 11:24:00 in Monthly Summaries (623 views)

VS Code logo3015. We implemented the COGS VAT account option in Accounts Payable module of MoneyBooks, so the VAT amount on a bill would get posted to the VAT Actuals account, in situations were VAT charged by suppliers were deductible from VAT payable to the government. Downloaded and installed VS Code (Visual Studio Code) from Microsoft that is supposed to be totally free, and a competitor to Sublime Text and Atom editors.

3074. As a follow-up to the FrontAccounting Cooperative Society module we developed and installed months ago, we reviewed the member balances spreadsheet received from the client’s consultant, writing an SQL code generator later used to upload the loan and deposits balances to their server database. We downloaded a mirror of the VS Code documentation so it could be handy when there was no internet connection to read the web-based one.

3085. Created a local version of a website that had been done using WordPress: This generally involved placing the downloaded WordPress program files in a local hard disk directory and editing a few of them (wp-config.php, index.html, .htaccess and sitemap.xml), creating the WordPress database and loading an edited version of the database script into it.

3100. Watched Traversy’s video Landing Page With Smooth Scroll - 3 Options and coded through the first CSS option using VS Code.

3111. Reviewed creating “snippets” in Sublime Text, created one, then moved on to Traversy’s video downloaded over a year ago—CSS Grid Layout Crash Course.

3122. Worked through Traversy’s Easy Fullscreen Landing Page With HTML & CSS video and later downloaded React JS Crash Course - 2019 and began working on it.

React logo3133. Worked through the React tutorial up to the 49th minute; once the React development server was running VS Code became very sluggish so we later switched to Sublime Text which didn’t recognize the React syntax as much but wasn’t as sluggish. We downloaded and installed the React Developer Tools plugin for Firefox and implemented a couple of new components in the course work, seeing how called components could pass values up to a parent through property methods.

3144. Implemented candidate list school import order sequencing for Labelwriter envelope labels, uploading the update and sending the client the installation link. Worked through the React video up to 59m45s and did some reading at Wikipedia, seeing that Riot was a smaller-sized framework like React and Vue.JS was created as an improvement on AngularJS. In the React course application, deleting an item was implemented and a new header component was added which due to an error we made crashed the Firefox browser and while trying to sort out the issue we did the build process for the application, downloaded and installed the server module (serve) and got it serving the built application.

3155. Got to the end of the React tutorial, covering addition of items to the memory array-based to-do list, URL routing and HTTP queries, and during the process downloaded and installed more Node modules (uuid, react-router-dom, axios, react, create-react-app), then downloaded a mirror of documentation from the React website for offline reading. We then began adding enhancements to the course application.

3166. We realized what was wrong with two Sublime Text snippets we created. Their shortcuts weren’t listed on the menu and they didn’t activate automatically. After quickly correcting them using Notepad++ we quickly created another snippet from one of them. We wanted to implement database retrieval in the React course application and thinking SQLite should be simpler as we wouldn’t need to connect to a database server we installed the sqlite3 module and then when it proved challenging we installed the sqlite module but that also didn’t work as it relied on sqlite3. Eventually we resorted to mysql which surprisingly gave us some challenges as well. The course application we were enhancing no longer worked but kept reporting it couldn’t reference one module after another and finally there was the odd complaint that one of the functions used by mysql wasn’t a function!

3170. Corrected the module reference issues from yesterday by first deleting all the modules installed yesterday, reinstalling Node.js then replacing the empty npm directory with a backup—and got the revised React app displaying again on the browser. We learned the hard way—from others’ experiences on the web—that the reason why a mysql function was being reported as not a function was because it was trying to do database connection which wasn’t permitted on the client side. We put up a PHP script that read and displayed the todo table in the SQLite database, now remaining to use this content via an HTTP call from the React app.

3181. Inability to specify an invoice covered by a client’s payment—because then they were using a different name at the time of the invoice—made us revise MoneyBooks Sales to permit specifying an invoice with a different customer code against a receipt, along with specifying if a receipt excluded VAT and then posting to GL “VAT withheld” instead of “VAT receipt.” We achieved a milestone with the revised React app today, having the PHP script return data to the React app via an HTTP call from the axios module and then reformatting the string data to an array of objects for proper display by the React app: The SQLite data was now showing in the React app when the SQLite data source was selected, like we’d initially planned.

SQLite logo3203. For the React app we implemented DELETE, UPDATE and INSERT SQL statements in the PHP script, after taking time off to review SQLite and the two PHP approaches of PDO and php_sqlite3 library, downloading the latest SQLite version 3.27.2 and seeing that integer primary keys automatically got incremented when omitted from INSERT statements.

3214. For the React application we concluded testing out CRUD operations using the SQLite3 class from php_sqlite3.dll after enabling the DLL in the php.ini file, decided to implement only HTTP GET calls to the PHP script from the React app and saw at Stack Overflow how to set a variable default item for a <SELECT> dropdown in React.

Project Activity Form3225. Tested and revised the React app, getting the selected data source dropdown option to show when the page refreshed, seeing how the page refresh happened automatically when the localhost server was called from the axios module but not when an external website call was made. We revised MBTM project invoicing—the project activity form and the database structure—to implement automatic work-free day setting, including a work-free-day factor for the hourly rate when invoicing. We created and emailed the download link to the client for the complete setup installer for Labelwriter as upgraded the past one to two months.

3240. Completed initial upgrading work on the React todo list app, installing React Developer Tools extension on Google Chrome and testing it on Chrome, building the optimized application to run from a directory of the server rather than root, and finding out the reason the page refresh was happening when SQLite data was updated was because the SQLite database file was also in the client application directory, and also that the PHP json_encode() method did return something that was treated as an object by JavaScript rather than a string. Added finishing touches to the work-free day revision we made in Time Manager, including some corrections to the project invoicing form.

3251. Early morning we resolved the final issue with the enhanced React Todo app, getting it displaying fully from a subdirectory of a server rather than root: Googling react routing for both root and subdirectory took us to a post by Scott Vinkle about doing just what we needed to do, then rewrote the code as <Router basename={process.env.PUBLIC_URL}> and it worked. We worked through Brad’s video “Full Screen Responsive Image Slider | No Libraries” and his technique was to load all images as backgrounds for different DIVs but initially hidden and then use JavaScript to show them one at a time by shifting a style attribute from one to another.

3262. Visited our new domain name registration and hosting client on the mainland to sort through the server email issues they were having, downloading and installing Mozilla Thunderbird on a laptop and setting up email accounts on it for sending and receiving mail, letting them change a forgotten password via cPanel, and guiding them set up the new server email accounts on their Android smartphones.

3273. Implemented revisions to the MoneyBooks ancestor window that will affect all modules, correcting how the application recognized a new day while it was still active and recompiled the Time Manager module for a start where the need was first observed, later recompiling Inventory and Employees modules after some other needed changes.

3284. Recompiled four more MoneyBooks modules for the ancestor window changes—GL, Data Manager, Payroll and Sales—with the envelope printing feature in DM also being revised to allow for optional sender’s name above the return address.

3295. We investigated the possibility of merging Labelwriter packing summary reports saved on different computers and told the client via email it would be possible and would take a day or two for the update to be ready. A new website we reviewed had been built using a free WordPress theme called SuperMag so we visited the theme website and checked out their offerings, downloading stuff for SuperMag and the Corporate Plus theme that was also free.

Summary

Further upgrading of Labelwriter was done, along with research and review of web development technologies, particularly ReactJS, CSS grid, JavaScript, HTML and PHP. Client’s loans and deposits balances were uploaded to their server for the Cooperative Society module of FrontAccounting. Several MoneyBooks modules were revised, including Accounts Payable, Time Manager, Inventory, Employees, GL, Data Manager, Payroll and Sales. Technical support visit was made to our new domain name registration and hosting client to sort out their server email account issues. We cloned a WordPress website and conducted review of another for a client.

If you like this post please register or log in to be able to subscribe and be notified of new posts by admin.

 

Tags

2019    admin    AngularJS    April 2019    Atom    Brad Traversy    Cooperative Society module    cPanel    FrontAccounting    json_encode    Labelwriter    March 2019    MBTM    MoneyBooks    MoneyBooks Accounts Payable    MoneyBooks Data Manager    MoneyBooks DM    MoneyBooks Employees    MoneyBooks GL    MoneyBooks Inventory    MoneyBooks Payroll    MoneyBooks Sales    MoneyBooks Time Manager    Mozilla Thunderbird    Node.js    PDO    php_sqlite3    React    React.js    ReactJS    Riot    Scott Vinkle    SQLite    Stack Overflow    Sublime Text    SuperMag    Thunderbird    Traversy    Visual Studio Code    VS Code    WordPress   

Comments

No comments yet.

Add Comment

(All values are required.)

 (Will not be published.)

Similar Posts

February 2019 In Brief  |   April 2019 In Brief  |   December 2018 In Brief  |   February 2020 In Brief  |   July 2020 In Brief  |   January 2019 In Brief  |  

 Close
Tweet