package com.bankaudit.report.v3.service;

import java.util.Map;
  

public interface AuditBookReportServiceV3 {
 	 
	
	//List<AuditBookReportDataModel> generateAuditBookReport(Integer legalEntityCode, String auditId, String auditTypeCode, String reportLanguage);
	
	//byte[] generatePDFReport(Map<String, Object> params, Integer legalEntityCode, String auditId);

	String generatePDFReport(Map<String, Object> params, Integer legalEntityCode, String auditId, String auditTypeCode, String userId, Boolean isFinalReport, 
			String planId,  String unitId, String reportCode, String reportLanguage );
	
	String generatePDFReportCR(Map<String, Object> params, Integer legalEntityCode, String auditId, String auditTypeCode, String userId, Boolean isFinalReport, 
			String planId,  String unitId, String reportCode, String reportLanguage, String actionType, String role);
	
	String generatePDFReportSR(Map<String, Object> params, Integer legalEntityCode, String auditId, String auditTypeCode, String userId, Boolean isFinalReport, 
			String planId,  String unitId, String reportCode, String reportLanguage, String actionType, String role);
	
	String storeReportDataIntoReportTable(Integer legalEntityCode, String auditId, String auditTypeCode, String reportLanguage) throws Exception;
	
	String getFinalizedReport(Integer legalEntityCode, String auditId, String auditTypeCode, String reportCode);
	
	/**************** TO update Report related data to master table from UI  (from capture/inspection screen) Start **************/
	

	void updateChecklistForReportTable(Integer legalEntityCode, String mappingId, String auditId, String auditTypeCode, String auditGroupCode, 
				String auditSubGroupCode, String activityCode, String processCode, String findingCode, String isComplied, String reportLanguage, 
				String nonCompliancePersistence, String criticality );
	 
	void updateStandardStatementForReportTable(Integer legalEntityCode, String mappingId,  String auditId, String auditTypeCode, String auditGroupCode, 
			String auditSubGroupCode, String activityCode, String processCode, String findingCode, String isComplied, String statement,  
			String statementHindi, String reportLanguage);
	
	void updateRemarksForReportTable(Integer legalEntityCode, String mappingId,  String auditId, String auditTypeCode, String auditGroupCode, 
			String auditSubGroupCode, String activityCode, String processCode, String findingCode, String isComplied, String statement, String reportLanguage);
	
	void updateBankRemarksForReportTable(Integer legalEntityCode, String mappingId,  String auditId, String auditTypeCode, String auditGroupCode, 
			String auditSubGroupCode, String activityCode, String processCode, String findingCode, String isComplied, String statement, String reportLanguage);
	
	void updateScrutinyRemarksForReportTable(Integer legalEntityCode, String mappingId,  String auditId, String auditTypeCode, String auditGroupCode, 
			String auditSubGroupCode, String activityCode, String processCode, String findingCode, String isComplied, String statement, String reportLanguage);
	/**************** TO update Report related data to master table from UI  (from capture/inspection screen) End **************/
	
	//Generate audit profile pdf
	String generatePDFProfile(Map<String, Object> params, Integer legalEntityCode, String auditId, String auditTypeCode, String userId,
			String planId,  String unitId,  String reportLanguage );
	
	//Generate Outstanding Report
	String generateOutStandingReport(Map<String, Object> params, Integer legalEntityCode, String auditId, String auditTypeCode, String userId, Boolean isFinalReport,
			String planId,  String unitId, String reportCode, String reportLanguage, String role );

}
