Published on : June 10, 2020

Backend URL : https://loantap.in/wp-admin/post.php?post=758498&action=edit

Frontend URL : https://loantap.in/banking/workflow-update-nach

Update NACH Flow takes 4 Steps to complete.

Step 1

Import NACH Data

Step 2

View NACH Data

Step 3

NACH update

Step 4

Workflow Completed! Download CSV

Step 1 : Import NACH Data :

View Interface:
Csv Format

Sublan_id

withdrawal_id

entry_date

receipt_amount

debit_account

txn_ref

nach_status

waived_bounce_charges

bounce_reason

is_bounce_amount_waived

SUB1608478609520324

W132123123

20180507

5000

Bank(Cheque)

Bank(NACH)

Bank(Deposit)

Loan Account Excess

NACH Not Presented

ref-54646

success

failed

500

bounce_reason xxxx

yes

Required

Required in multi, don't add this block in others

Required

Required

Required

Required

Required

Required if nach_status is failed

Required if nach_status is failed

Required to waive amount for OD


Import data from CSV

Read all CSV data in array and encode in json to send submit handler

Submit Flow :

Collect posted data and decode
	[request.request_body m.json_decode=true o.set=template.data /]
 
Define table name to store data
	[template.set table_name="marketing.nach_{unique_number}" /]   

Import CSV data in table
	Query
	 CREATE TABLE [template.table_name/] (
		ID INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
		stamp TIMESTAMP,
		created_by VARCHAR(50) NULL,
		[loop.@xx template.data.0]
			[env.@xx.key/] VARCHAR(255) NULL,
		[/loop.@xx]
		service varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
		current_page varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
		message VARCHAR(255) NULL,
		status VARCHAR(50)
		) COMMENT='banking||workflow-update-nach';					 
		  
	/* store table entry into db*/
	insert into delete_marketing_tables (`table_name`,`expiry_date`)
	select '[template.table_name/]',DATE_ADD(NOW(), INTERVAL 12 HOUR) from dual;
			
First step completed . Step 2 get started

Step 2 : View Nach Data :

Imported data will display in Manage format Columns Used in UI:

Sublan_id
withdrawal_id
entry_date
receipt_amount
debit_account
txn_ref
nach_status
waived_bounce_charges
bounce_reason
is_bounce_amount_waived

Step 3 : Nach Update :

Start activity queue

Service name

common_service.transaction.nach_update

Edit URL

https://loantap.in/wp-admin/post.php?post=752156&action=edit

Template Name

Nach_update

Three Types of nach update, based on columns :

1) multi_nach_update 
	Fire transaction 
		[sublan_txn.run multi_nach_update 
			entry_date="{@data.row.entry_date}" 
			sublan_id="{@data.row.sublan_id}"  
			instalment_id="{@data.row.withdrawal_id}"
			receipt_amount="{@data.row.receipt_amount}" 
			debit_account="{@data.row.debit_account}" 
			txn_ref="{@data.row.txn_ref}" 
			nach_status="{@data.row.nach_status}"
			waived_bounce_charges="{@data.row.waived_bounce_charges}"
			bounce_reason="{@data.row.bounce_reason}"
			is_bounce_amount_waived="{@data.row.is_bounce_amount_waived}"
			o.set=module.sublan_obj
		/]
		
	
2) pd_nach_update 
	Fire transaction
		[sublan_txn.run pd_nach_update 
			entry_date="{@data.row.entry_date}" 
			sublan_id="{@data.row.sublan_id}"  
			receipt_amount="{@data.row.receipt_amount}" 
			debit_account="{@data.row.debit_account}" 
			txn_ref="{@data.row.txn_ref}" 
			nach_status="{@data.row.nach_status}"
			waived_bounce_charges="{@data.row.waived_bounce_charges}"
			bounce_reason="{@data.row.bounce_reason}"
			is_bounce_amount_waived="{@data.row.is_bounce_amount_waived}"
			o.set=module.sublan_obj
		/]	


3) Nach_update (Default):
	Fire transaction
		[sublan_txn.run nach_update 
			entry_date="{@data.row.entry_date}" 
			sublan_id="{@data.row.sublan_id}"  
			receipt_amount="{@data.row.receipt_amount}" 
			debit_account="{@data.row.debit_account}" 
			txn_ref="{@data.row.txn_ref}" 
			nach_status="{@data.row.nach_status}"
			waived_bounce_charges="{@data.row.waived_bounce_charges}"
			bounce_reason="{@data.row.bounce_reason}"
			is_bounce_amount_waived="{@data.row.is_bounce_amount_waived}"
			o.set=module.sublan_obj
		/]
		
	[module.sublan_obj.last_txn.status set=template.status /]
	[template.set status="success" cond="{template.status}" equal="available" /]

Common Notification Logic :

Mail Status Flag

Logic

Support

yes

Default Value

Common

no

On Empty mail template

Common

no

On transaction status not success

Common

no

On env.@tran.sublan_obj.sublan.temp.disable_mail = yes

For new sublan

no

On env.@tran.sublan_obj.sublan.temp_disable_mail = yes

For old sublan

no

env.@tran.sublan_obj.scheme.scheme.notification

For old sublan

no

env.@tran.send_notification

Common for specific

[template.set mail_tpl='instalment-update' /]
[module.sublan_obj.txn.send_mail_template o.set=template.mail_tpl c.not_empty=module.sublan_obj.txn.send_mail_template/] 
	 
[do.@tran]
	[module.sublan_obj o.set=@tran.sublan_obj /]
	[env.set @tran.default_mail_tpl='{template.mail_tpl}' /]
	[env.set @tran.notification_type='mail' /]
	[env.set @tran.notification_block='notification_nach_update' /]
	[sublan_manage.txn-notification.main o.set=template.mail_ack/]
[/do.@tran]

Step 4 : Workflow Completed! Download CSV