Overview
sewerage Calculator Service is used for creating meter reading, searching meter reading, updating existing meter reading, calculation of sewerage charge, demand generation, SMS & email notification to ULB officials on-demand generation and estimation of sewerage charge on basis of meter reading for existing sewerage application until the application is disconnected.
Configuration Details
MDMS Configuration
There are no additional billing slabs to be configured for sewerage disconnection, the calculation happens with the meter reading if added and uses existing billing slabs.
Billing Slabs:
Criteria :
connection type
building type
calculation attribute
property usage type
The combination of the above can be used to define the billing slab. Billing Slab is defined in mdms under ws-services-calculation folder with the WCBillingSlab. The following is the sample slab.
{ "tenantId": "pb", "moduleName": "sw-services-calculation", "SCBillingSlab": [ { "id": "1", "buildingType": "RESIDENTIAL", "calculationAttribute": "No. of water closets", "connectionType": "Non Metered", "minimumCharge": 0, "slabs": [ { "from": 0, "to": 1000000000, "charge": 15 } ] }, { "id": "2", "buildingType": "RESIDENTIAL", "calculationAttribute": "No. of toilets", "connectionType": "Non Metered", "minimumCharge": 0, "slabs": [ { "from": 0, "to": 1000000000, "charge": 15 } ] }, { "id": "3", "buildingType": "NONRESIDENTIAL", "calculationAttribute": "No. of water closets", "connectionType": "Non Metered", "minimumCharge": 0, "slabs": [ { "from": 0, "to": 1000000000, "charge": 30 } ] }, { "id": "4", "buildingType": "NONRESIDENTIAL", "calculationAttribute": "No. of toilets", "connectionType": "Non Metered", "minimumCharge": 0, "slabs": [ { "from": 0, "to": 1000000000, "charge": 30 } ] }, { "id": "5", "buildingType": "Commercial", "calculationAttribute": "No. of water closets", "connectionType": "Non Metered", "minimumCharge": 0, "slabs": [ { "from": 0, "to": 1000000000, "charge": 30 } ] }, { "id": "6", "buildingType": "Commercial", "calculationAttribute": "No. of toilets", "connectionType": "Non Metered", "slabs": [ { "from": 0, "to": 1000000000, "charge": 30 } ] }, { "id": "7", "buildingType": "Government", "calculationAttribute": "No. of water closets", "connectionType": "Non Metered", "slabs": [ { "from": 0, "to": 1000000000, "charge": 30 } ] }, { "id": "8", "buildingType": "Government", "calculationAttribute": "No. of toilets", "connectionType": "Non Metered", "slabs": [ { "from": 0, "to": 1000000000, "charge": 30 } ] }, { "id": "9", "buildingType": "Partly Commercial", "calculationAttribute": "No. of water closets", "connectionType": "Non Metered", "slabs": [ { "from": 0, "to": 1000000000, "charge": 25 } ] }, { "id": "10", "buildingType": "Partly Commercial", "calculationAttribute": "No. of toilets", "connectionType": "Non Metered", "slabs": [ { "from": 0, "to": 1000000000, "charge": 25 } ] }, { "id": "11", "buildingType": "RESIDENTIAL", "calculationAttribute": "Flat", "connectionType": "Non Metered", "minimumCharge": 100, "slabs": [] }, { "id": "12", "buildingType": "NONRESIDENTIAL", "calculationAttribute": "Flat", "connectionType": "Non Metered", "minimumCharge": 250, "slabs": [] }, { "id": "13", "buildingType": "Commercial", "calculationAttribute": "Flat", "connectionType": "Non Metered", "minimumCharge": 250, "slabs": [] }, { "id": "14", "buildingType": "Government", "calculationAttribute": "Flat", "connectionType": "Non Metered", "minimumCharge": 350, "slabs": [] }, { "id": "15", "buildingType": "Partly commercial", "calculationAttribute": "Flat", "connectionType": "Non Metered", "minimumCharge": 200, "slabs": [] } ] }
Estimation:
For disconnection application fee, the estimation will return all the related tax head based on criteria.
Following are the exemptions and taxes that are calculated:
Form fee
Scrutiny fee
Other charges
Security charges
Tax and cess
Sewerage Disconnection Charge and Tax:
Sewerage charge is based on billing slab, for sewerage disconnection application charge will be based on slab and tax based on master configuration.
Interest:
Below is a sample of master data JSON for interest :
{ "tenantId": "pb", "moduleName": "sw-services-calculation", "Interest": [ { "rate": 5, "minAmount": null, "applicableAfterDays":0, "flatAmount": null, "maxAmount": null, "fromFY": "2019-20", "startingDay": "1/01/2019" } ] }
Penalty:
Below is a sample of master data JSON for penalty :
{ "tenantId": "pb", "moduleName": "sw-services-calculation", "Penalty": [ { "rate": 10, "minAmount": null, "applicableAfterDays": 0, "flatAmount": null, "fromFY": "2019-20", "startingDay": "1/01/2019" } ] }
Round Off:
If the fraction is greater than equal to 0.5 the number is round up else it’s round down. eg: 100.4 will be rounded to 100 while 100.6 will be rounded to 101.
Demand Generation:
Whenever _calculate API is called demand is first searched based on the connection no and the demand from and to period. If demand already exists the same demand is updated else new demand is generated with consumer code as connection no and demand from and to a period equal to financial year start and end period.
In case of the update if the tax head estimates change, the difference in amount for that tax head is added as new demand detail. For example, if the initial demand has one demand detail with SEWERAGE_CHARGE equal to 120
"demandDetails": [ { "id": "77ba1e93-a535-409c-b9d1-a312c409bd45", "demandId": "687c3176-305b-461d-9cec-2fa26a30c88f", "taxHeadMasterCode": "SEWERAGE_CHARGE", "taxAmount": 120, "collectionAmount": 120, "additionalDetails": null, "auditDetails": { "createdBy": "04956309-87cd-4526-b4e6-48123abd4f3d", "lastModifiedBy": "04956309-87cd-4526-b4e6-48123abd4f3d", "createdTime": 1583675275873, "lastModifiedTime": 1583675298705 }, "tenantId": "pb.amritsar" } ],
After updating if the SEWERAGE_CHARGE increases to 150 we add one more demand detail to account for the increased amount. The demand detail will be updated to:
"demandDetails": [ { "id": "77ba1e93-a535-409c-b9d1-a312c409bd45", "demandId": "687c3176-305b-461d-9cec-2fa26a30c88f", "taxHeadMasterCode": "SEWERAGE_CHARGE", "taxAmount": 120, "collectionAmount": 0, "additionalDetails": null, "auditDetails": { "createdBy": "04956309-87cd-4526-b4e6-48123abd4f3d", "lastModifiedBy": "04956309-87cd-4526-b4e6-48123abd4f3d", "createdTime": 1583675275873, "lastModifiedTime": 1583675298705 }, "tenantId": "pb.amritsar" }, { "id": "0d83f4b0-6442-11ea-bc55-0242ac130003 ", "demandId": "687c3176-305b-461d-9cec-2fa26a30c88f", "taxHeadMasterCode": "SEWERAGE_CHARGE", "taxAmount": 30, "collectionAmount": 0, "additionalDetails": null, "auditDetails": { "createdBy": "04956309-87cd-4526-b4e6-48123abd4f3d", "lastModifiedBy": "04956309-87cd-4526-b4e6-48123abd4f3d", "createdTime": 1583675275873, "lastModifiedTime": 1583675298705 }, "tenantId": "pb.amritsar" } ],
The disconnection charges will be the addition of both demand details taxAmount.
Here the disconnection charges will be 120+30 = 150
RoundOff is bill based i.e every time bill is generated round off is adjusted so that payable amount is the whole number. Individual SW_ROUNDOFF in demand detail can be greater than 0.5 but the sum of all SW_ROUNDOFF will always be less than 0.5.
The additional parameter is being sent in calculation request for disconnection application.
disconnectRequest = true
if the request is for _calculate
api disconnection application.
API List
Title | Link |
| |
|
(Note: All the API’s are in the same postman collection therefore same link is added in each row)
Add Comment