End Points:
create : tl-services/v1/_create
update : tl-services/v1/_update
search : tl-services/v1/_search
Migration:
Two new columns added for TL Renewal flow. applicationType and workflowCode. To deploy TL Renewal in environment where TL is already running , these 2 columns needs to be migrated to eg_tl_tradelicense and eg_tl_tradelicense_audit table. The following query does this migration:
All the existing Applications default values for the new columns will be set using below Query.
Configurations:
Persister:
Persister config for TL Renewal is updated. Insert query for the table eg_tl_tradelicense is added in tradelicense.yml . The latest updated config can be referred from the below link:
https://github.com/egovernments/configs/blob/master/egov-persister/tradelicense.yml
BusinessService:
For renewal application , there are 2 new types. 'Edit Renewal' and 'Direct Renewal' . Edit (EDITRENEWAL) flow will follow the same workflow as normal Trade License. Direct (DIRECTRENEWAL) Renewal will follow a new workflow.
Hence 2 new Business service configs are pushed for each flow respectively.
mdms:
{ "businessService": "TL.RENEWAL", "code": "TL.RENEWAL", "collectionModesNotAllowed": [ "DD" ], "partPaymentAllowed": false, "isAdvanceAllowed": false, "isVoucherCreationEnabled": true, "isActive": true },
{ "category": "FEE", "service": "TL", "name": "TL Renewal Tax", "code": "TL_RENEWAL_TAX", "isDebit": false, "isActualDemand": true, "order": "2", "isRequired": false }, { "category": "REBATE", "service": "TL", "name": "TL Renewal Rebate", "code": "TL_RENEWAL_REBATE", "isDebit": true, "isActualDemand": false, "order": "0", "isRequired": false }, { "category": "PENALTY", "service": "TL", "name": "TL Renewal Penalty", "code": "TL_RENEWAL_PENALTY", "isDebit": false, "isActualDemand": false, "order": "1", "isRequired": false }, { "category": "TAX", "service": "TL", "name": "TL Renewal adhoc rebate", "code": "TL_RENEWAL_ADHOC_REBATE", "isDebit": true, "isActualDemand": false, "order": "0", "isRequired": false }, { "category": "TAX", "service": "TL", "name": "TL Renewal adhoc penalty", "code": "TL_RENEWAL_ADHOC_PENALTY", "isDebit": false, "isActualDemand": false, "order": "1", "isRequired": false }
{ "fromDate": 1585679399000, "toDate": 1617172199000, "periodCycle": "ANNUAL", "service": "TL", "code": "TLRENEWAL2020", "financialYear": "2020-21" },
https://raw.githubusercontent.com/egovernments/egov-mdms-data/master/data/pb/egf-master/FinancialYear.json
{ "id": "7", "tenantId": "pb", "finYearRange": "2020-21", "name": "2020-21", "code": "2020-21", "startingDate": 1585679399000, "endingDate": 1617172199000, "active": true, "isActiveForPosting": false, "isClosed": false, "transferClosingBalance": false, "module": "TL" },
application.properties :
EDITRENEWAL
& DIRECTRENEWAL
businessService codes are added.
create.directRenewal.workflow.name=DIRECTRENEWAL create.editRenewal.workflow.name=EDITRENEWAL
TradelicenseSearcCriteria.java
licenseNumber variable is now list if String. Hence licenseNumber is replaced everywhere with licenseNumbers
@JsonProperty("licenseNumbers") private List<String> licenseNumbers;
TLQueryBuilder.java
List<String> licenseNumbers = criteria.getLicenseNumbers(); if (!CollectionUtils.isEmpty(licenseNumbers)) { addClauseIfRequired(preparedStmtList, builder); builder.append(" tl.licensenumber IN (").append(createQuery(licenseNumbers)).append(")"); addToPreparedStatement(preparedStmtList, licenseNumbers); }
Frontend:
All APPROVED and EXPIRED applications are configured with 2 buttons ‘EDIT FOR RENEWAL' and 'SUBMIT FOR RENEWAL’ .
Edit for Renewal : Will be redirected to edit flow , where Citizen/ Counter employee have acces to change specific fields. New set of documents can be updated for Renewal flow, which is configured in mdms.
Documents Configuration :
https://github.com/egovernments/egov-mdms-data/blob/master/data/pb/TradeLicense/TradeType.json
License Number will be shown in the header.
Direct Renewal : Will be applied directly for Renewal. Which send application to PENDINGPAYMENT status.
SUBMIT FOR RENEWAL- Directly Submitted without editing.
TL Certificate configuration :
https://github.com/egovernments/configs/blob/master/pdf-service/data-config/tlrenewalcertificate.json - Data Config
https://github.com/egovernments/configs/blob/master/pdf-service/format-config/tlrenewalcertificate.json - Format Config
Employee :
Search Screen :
'Application Type' search param added.
Search Results have 2 more columns now.
Financial Year and Application Type :
CITIZEN:
On approved application RENEWAL BUTTON is visible to citizen.
Trade License Renewal Fees, Rebate and Penalty
When the the Trade License application is submitted for renewal, the renewal application fees is calculated depends on the billing slab provided in the system.
"billingSlab": [ { "tenantId": "pb.amritsar", "id": "a949d9b3-a5de-4e2e-9565-b61f41bc5a7b", "licenseType": "TEMPORARY", "structureType": "IMMOVABLE.PUCCA", "tradeType": "GOODS.MANUFACTURE.TST-3", "accessoryCategory": null, "type": "FLAT", "uom": null, "fromUom": 0.0, "toUom": 0.0, "rate": 500.00, "auditDetails": { "createdBy": "11b0e02b-0145-4de2-bc42-c97b96264807", "lastModifiedBy": "11b0e02b-0145-4de2-bc42-c97b96264807", "createdTime": 1539756637943, "lastModifiedTime": 1539756637943 } }, { "tenantId": "pb.amritsar", "id": "6e3b0523-8e3f-490e-be0e-0d8cf74efd6c", "licenseType": "TEMPORARY", "structureType": "IMMOVABLE.PUCCA", "tradeType": "GOODS.WHOLESALE.TST-160", "accessoryCategory": null, "type": "FLAT", "uom": null, "fromUom": 0.0, "toUom": 0.0, "rate": 500.00, "auditDetails": { "createdBy": "11b0e02b-0145-4de2-bc42-c97b96264807", "lastModifiedBy": "11b0e02b-0145-4de2-bc42-c97b96264807", "createdTime": 1539756637943, "lastModifiedTime": 1539756637943 } }, { "tenantId": "pb.amritsar", "id": "a270598a-fa39-4124-9bc2-bd2e6f6075af", "licenseType": "TEMPORARY", "structureType": "IMMOVABLE.PUCCA", "tradeType": "GOODS.RETAIL.TST-81", "accessoryCategory": null, "type": "FLAT", "uom": null, "fromUom": 0.0, "toUom": 0.0, "rate": 1000.00, "auditDetails": { "createdBy": "11b0e02b-0145-4de2-bc42-c97b96264807", "lastModifiedBy": "11b0e02b-0145-4de2-bc42-c97b96264807", "createdTime": 1539756637943, "lastModifiedTime": 1539756637943 } }, { "tenantId": "pb.amritsar", "id": "d957f0b7-b45b-4095-b4f2-2191bd88a9e9", "licenseType": "TEMPORARY", "structureType": "IMMOVABLE.PUCCA", "tradeType": "GOODS.MANUFACTURE.TST-23", "accessoryCategory": null, "type": "FLAT", "uom": null, "fromUom": 0.0, "toUom": 0.0, "rate": 150.00, "auditDetails": { "createdBy": "11b0e02b-0145-4de2-bc42-c97b96264807", "lastModifiedBy": "11b0e02b-0145-4de2-bc42-c97b96264807", "createdTime": 1539756637943, "lastModifiedTime": 1539756637943 } } ]
The calculation is also depend on the type i.e “FLAT” and “RATE” . If the calculation “type” in billing slab is FLAT the amount mentioned in rate field is the renewal fees and if the type is RATE then fees = rate x uomValue (from trade unit).
When a person fails to apply for renewal of his/her trade license application for proper financial year then some penalty charges has to pay. The penalty charge is X% of renewal fees. For example TL renewal financial year is 2019-20 and current financial year going on is 2020-21 then person has to pay penalty. When a person submitted the renewal application for proper financial year then certain amount is rebated from fees. Rebate charge is Y% of renewal fees. The rebate and penalty percentage is set by state/ULB.
MDMS configuration for Rebate and Penalty
Notification
The notification for renewal depends upon the Action and Status of the application.
Below is the mapping of Action_Status to localisation code
Action_Status | Localisation Code |
INITIATE_INITIATED | tl.renew.en.counter.initiate |
APPLY_APPLIED | tl.renew.en.counter.submit |
FORWARD_FIELDINSPECTION | tl.renew.en.field.inspection |
FORWARD_PENDINGAPPROVAL | tl.renew.en.pending.approval |
REJECT_REJECTED | tl.renew.en.counter.rejected |
APPROVE_PENDINGPAYMENT | tl.renew.en.counter.approved |
INITIATE_PENDINGPAYMENT | tl.renew.en.counter.approved |
TL Renewal Localisation Messages :
https://docs.google.com/spreadsheets/d/1o1qYwGB33SMksdgGLWZaxZLj7Q2sA_KU6opRQBfAYN8/edit#gid=0