Billing Service v 2
INTRODUCTION
An eGov core application which handles creating demand and bill for the services provided by the ULB like property tax, water charges etc...
Requirements:
Prior Knowledge of Java/J2EE.
Prior Knowledge of Spring Boot.
Prior Knowledge of KAFKA
Prior Knowledge of REST APIs and related concepts like path parameters, headers, JSON etc.
Prior knowledge of demand based system.
MDMS service, id Gen, eGov-user of eGov core applications.
Functionality:
eGov billing service creates and maintains demands, bills for citizens based on the services they consume from the tenant(ULB) and generate bills on demand.
Feature List:
Master data search
APIs to provide master data fetched from mdms serviceDemand
Create and update for storing demand in the system, provides search for other application to access the demand.Bill
Generate bill to provide new bills on requirement, fetch bill api to provide a valid bill but not necessarily a new one.
FLOW DIAGRAM
SETUP AND USAGE:
The Application is present in billing services folder available in the Business-services git repository. The spring boot application but needs lombok* extension added in your ide to load it. Once the application is up and running API requests can be posted to the url and ids can be generated.
*in case of intellij the plugin can be installed directly, for eclipse the lombok jar location has to be added in eclipse.ini file in this format
javaagent:lombok.jar
.
For the API information please refer the swagger yaml
GOTO : https://editor.swagger.io/ and click on file -> import url, then add the raw url of the API doc in the pop up.
Incase the url is unavailable, please go to the docs folder of municipal services repo and find the yaml for billing service.
ACCESS:
Please make use of the following postman collection to access the apis
https://github.com/egovernments/business-services/tree/master/Docs
Configs to be updated in the Application properties
user service
user.service.hostname = http://egov-user:8080/
id gen
egov.idgen.hostname = http://egov-idgen:8080
mdms
egov.mdms.host=http://egov-mdms-service:8080/
fetch bill API internal calculate API’s provided by respective modules
bs.businesscode.demand.updateurl= {"PT":"http://pt-calculator-v2:8080/pt-calculator-v2/propertytax/_updatedemand","TL":""}
If the URL has been provided the respective module the fetch bill API will make a call to get the updated demands for new bill generation. if not present then new bill will be generated without making any changes to the demand.
IdGen format for bill number
bs.bill.billnumber.format = BILLNO-{module}-[SEQ_egbs_billnumber{tenantid}]