Full ZKGrails App Wednesday, May 29, 2013

I work for a company providing a Voice over IP service. We needed a tool to track and audit our billing, i.e., compare what we believe out costs for a given period were, verse what our various service providers say those costs were.

The app uses:
  • Grails 2.2.0
  • ZK 2.1.0
  • jfreechart 1.0.14
First, we will see the layout of the application; then delve into the some of the more interesting ZKGrails, Groovy and Grails elements.

The total data is divided into International and Domestic Calling data, and each of these categories is divided into (Internal) LCR (Least Cost Router) billing data and (external) "Actual" data, which is the data coming from our VoIP calling vendor monthly bills.

The LCR data is basically our internal accounting of the calls made in a given month, i.e., the number of minutes and their cost. The actual data is basically what it cost us to route calls to various phone companies (long distance and international calling providers/vendors)

The data from both internal and external sources is entered by hand into a MySQL database.

This application tries to pull 12 months of data if it exists, categorizes, formats and displays the data in the various tabs.

As stated the 2 main divisions are Int'l and Dom calling data. This data is summarized into monthly totals compiled for all the various domestic and international vendors our company may have used in a given month. Then it is charted across time.

In addition, the data is broken down for each month into the various vendors and displayed for each month.

Finally, there is a data entry and editing tab.


 


Find the implementation details here
Full ZKGrails App: Main Page Zul & Composer Detail

The second tab displays a dynamically drawn chart based on the summarized data.




Here is how the monthly call data is broken down by vendor and displayed.




Find the implementation details here
Full ZKGrails App: Calling Data Breakout tabs

Here is how the Grails scaffolding CRUD interface is wrapped inside the ZKGrails tab. We can enter new vendors.




Here we can enter detailed data for a given vendor.




Again: Find the implementation details in two parts here:
Full ZKGrails App: Main Page Zul & Composer Detail

Full ZKGrails App: Calling Data Breakout tabs

0 comments: